作者:绿色风
分类:
时间:2022-08-17
浏览:133
楼主 kevinchengcw |
Q: 如何关联窗体中两个文本框的文本内容? A: 新建窗体,并插入两个文本框,双击文本框1,并在出现的编辑框内选择文本框一的KeyUp事件,输入如下代码:- Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
- Dim N As Integer
- Dim Ws As Worksheet
- Set Ws = Worksheets("sheet1") '设定变量Ws为我们要查询的工作表sheet1
- N = Ws.Cells(Rows.Count,1).End(3).Row '设定N的值为该表A列有数据的最后一行的行号值
- If WorksheetFunction.CountIf(Ws.Range("a1:a" & N), TextBox1.Text) > 0 Then '每当按键弹起后判断已输入文本是否存在于A列中
- TextBox2.Text = WorksheetFunction.VLookup(TextBox1.Text, Ws.Range("a1:b" & N), 2, 0) '如果存在则查询对应的B列文本并赋值给文本框2
- Else
- TextBox1.Text = "" '如果在查询的数据栏没有符合的数据则清空文本框2的文本
- End If
- If TextBox1.Text = "" Then TextBox2.Text = "" '文本框1清空时文本框2也为空
- End If
- End Sub
注意获取正确的相关联的文本框名(可于属性窗口中查询) 以上利用文本框的KeyUp事件来执行判断查询赋值的一系列动作,对于防止重复输入相当有效。 窗体学习--关联两个文本框的值.rar |
2楼 wise |
N = Ws.[a65536].End(3).Row 这个改一下,07版以上不适用了 |
3楼 wise |
N = Ws.Cells(Rows.count,1).End(3).Row 这个对03和03/10版都适用 |
4楼 kevinchengcw |
谢谢,这个建议不错,在这发帖是要注意这个了 |
5楼 xpm130 |
说句题外话,附件中vlookup的模糊查找不准确
|
6楼 kevinchengcw |
感谢提醒,确实忽略了一个情况(未找到符合项时未能清空文本框2的文本)和调整了vlookup的参数,现附件已更新。 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一