ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何关联两个文本框的文本?

如何关联两个文本框的文本?

作者:绿色风 分类: 时间:2022-08-17 浏览:98
楼主
kevinchengcw
Q: 如何关联窗体中两个文本框的文本内容?
A: 新建窗体,并插入两个文本框,双击文本框1,并在出现的编辑框内选择文本框一的KeyUp事件,输入如下代码:
  1. Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  2. Dim N As Integer
  3. Dim Ws As Worksheet
  4. Set Ws = Worksheets("sheet1")   '设定变量Ws为我们要查询的工作表sheet1
  5. N = Ws.Cells(Rows.Count,1).End(3).Row    '设定N的值为该表A列有数据的最后一行的行号值
  6. If WorksheetFunction.CountIf(Ws.Range("a1:a" & N), TextBox1.Text) > 0 Then   '每当按键弹起后判断已输入文本是否存在于A列中
  7. TextBox2.Text = WorksheetFunction.VLookup(TextBox1.Text, Ws.Range("a1:b" & N), 2, 0)    '如果存在则查询对应的B列文本并赋值给文本框2
  8. Else
  9. TextBox1.Text = ""    '如果在查询的数据栏没有符合的数据则清空文本框2的文本
  10. End If
  11. If TextBox1.Text = "" Then TextBox2.Text = ""       '文本框1清空时文本框2也为空
  12. End If
  13. 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总版主之一

评论列表
sitemap