问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请帮分析一下下面VBA代码的意思??求高人,最好是每条解答。

发布网友 发布时间:2024-08-18 16:23

我来回答

1个回答

热心网友 时间:2024-08-22 16:09

Private Sub ListBox1_Click()    ' ListBox1_点击事件
Range(MSTR) = ListBox1.Value    '<单元格>区域(MSTR)= ListBox1的值,mstr看你的代码的意思,是你点击的单元格,,但没看到你定义全局变量。
ListBox1.Visible = False    ' ListBox1隐藏
TextBox1.Visible = False    ' TextBox1隐藏
End Sub    '子程序结束

Private Sub TextBox1_Change()    'textbox1的change事件
On Error Resume Next    '当错误 转到 下一个
Me.ListBox1.Clear    ' 清除listbox1中的值
Dim ARR, ARR1(), k As Integer, sss As String    '定义变量 ARR,ARR1()-活动数组,k 为 整型值,sss 为 字符串
ARR = Sheets("数据").Range("F1:F2000")    ' ARR=数据sheet中f1:F2000的值(这句应该有问题,可能是f1:g2000)
sss = Me.TextBox1.Text    '把文本控件里输入的内容赋值给变量sss
ReDim ARR1(1 To UBound(ARR))    '重定义数组arr1的范围为 1 到数组arr的上标
For X = 1 To UBound(ARR)    '设定变量范围为X=1到<数组上限>(ARR)
If Asc(sss) > 0 Then    '如果 sss的第一字母转为数值后>0 则执行 
If ARR(X, 1) Like UCase(sss) & "*" Then    '如果 ARR(X,1) 类似 大写(sss)。加上通配符*进行匹配
k = k + 1    'k=k+1,k为计数器,
ARR1(k) = ARR(X, 2)    '数组arr1的第k个值(即目前的最后一个)=arr(x,2)
End If    'If判断过程结束
Else    '另外
If ARR(X, 2) Like sss & "*" Then    '如果 ARR(X,2) 类似 sss 加上通配符(此段可精简)
k = k + 1    'k=k+1
ARR1(k) = ARR(X, 2)    'ARR1(k)=ARR(X,2)
End If    'If判断过程结束
End If    'If判断过程结束
Next X    '下一个X
k = 0    'k=0
Me.ListBox1.List = ARR1    ' listbox中列表项的值=数组arr1
End Sub    '子程序结束

Private Sub Worksheet_SelectionChange(ByVal Target As Range)    '当工作表选区发生改变时执行本程序,即工作表选择事件
If Target.Column = 1 And Target.Rows.Count = 1 Then    '如果  Target的列标=1 并且  Target的行数的计数值=1 则执行 :即点选的单元格在a列,且单元格局域是一列,则
MSTR = Target.Address    'MSTR= Target的地址:该变量在顶部有引用,应定义公共变量
TextBox1.Top = ActiveCell.Top    ' TextBox1的顶部= 活动单元格的顶部
ListBox1.Top = TextBox1.Top + TextBox1.Height    ' ListBox1的顶部= TextBox1的顶部+ TextBox1的高度:这二句是设定textbox+listbox出现的位置。应该先调用visible=true。再设置控件出现的位置。同时应该设置left。witdh等属性。
ListBox1.Visible = True    ' ListdBox1显示
TextBox1.Visible = True    ' TextBox1显示
Else    '否则
ListBox1.Visible = False    ' ListBox1隐藏
TextBox1.Visible = False    ' TextBox1隐藏
End If    'If判断过程结束
End Sub    '子程序结束

Sub AA()    '子程序 AA()
MsgBox Len("A") & " -" & LenB("A")    '弹出消息框,显示的内容为 1-2。这里不知道是不是有什么特殊意义!
End Sub    '子程序结束

ARR = Sheets("数据").Range("F1:F2000")

这与

ARR(X, 2) 不对应,你确定这代码能运行吗?

总体来说,有点乱,不知道是不是你复制的关系

另:textbox是文本框,listbox是列表框。。

上面这段代码的大意是:

在当前工作表点击a列任意一个单元格(单元格数量小于2),则显示列表框,文本框控件。。文本框的顶部与单元格底部持平。列表框顶部接着文本底部。。

当文本框 改变值时,运行textboxchange事件,(注意,该事件是每输一个字符或删除一个字符就运行一次),在数据表中f1:f2000区域查找当前输入字符开头的内容,将所有内容添加到列表框控件内。。(中间有数组做为转接,没有去重复)

在列表框内选择内容,鼠标单击时。触发列表框单击事件(个人感觉不太好,换成双击事件),把该内容添加到之前的活动单元格。控件隐藏。。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
金丝熊,一般吃什么啊?水果还是蔬菜? 怎样管理wp7上安装的软件?我手机是三星i917 》有文件管理软件吗?、我的... 二片式球阀(关于二片式球阀的基本详情介绍) 二片式球阀工作原理 二片式球阀优点 不锈钢二片式球阀安装与维护及注意事项 二片式球阀两片式球阀的结构特点 不锈钢二片式球阀结构特点 不锈钢二片式球阀简介 吃刚出炉的蛋糕致癌? TCL空调运行中出现E4是什么故障 TCL空调E4是什么故障代码 TCL空调出现E4什么故障? tcl空调e4故障 TCL空调故障e4是什么意思? TCL空调故障e4是怎么回事? 网上小额贷款有哪个平台? 人工环境气候箱 ck-27无人机怎么连接遥控器 普洱茶文化内涵 手机圈地怎样上传无人机 DJIGO4App提示大疆精灵Phantom4ProV2.0云台电机过载如何处理? 云南普洱茶文化的内涵及价值意义 普洱茶文化的内涵及价值意义新探 梦见小狗咬了一下手的预兆 普洱茶文化的内涵及价值意义 普洱茶内涵物质和其品质的关系 少林寺自助游攻略 送给爱玩的你 少林寺游玩需要多长时间 腰果的热量怎么样? 泰国人为什么不用左手 四个形容灯光的四字词语有哪些 鸡西市园林处处长贾丽艳简历 ...要毕业实习了不知道怎么写,求高人帮忙写个个人简历底稿 姚毓璆个人简历 送女生礼物、心形盒子里放发绳、跟玫瑰、内部怎么摆放呢、 开业朋友送的礼物能摆放吗 烂漫是什么意思烂漫的出处 烂漫是什么意思啊? 烂漫的近义词? 塔塔粉做蛋糕起什么作用 如何把礼物交给领导 外网断线是什么意思呀? 卖火柴的小女孩感悟 对于卖火柴的小女孩的感悟 儿童红眼病用什么眼药水好 ...的虚线框怎么变实线ps矩形选框工具用完怎么取消虚线 我的ps用移动工具总是出现一个虚线框ps移动工具一直有像选中一样... 判了死刑又缓刑是为什么 送给别人的礼物她收了但是又放在你知道的位置,该怎办 l老大叫大毛 老二叫二毛 老三叫什么?