EXCEL VBA窗体中的label及textbox序号循环

ExcelVBA窗体中我复制了很多的label和textbox,实现label以及textbox序号循环,每循环一次label序号加1,textbox序号乘4,预想公式是... Excel VBA窗体中我复制了很多的label和textbox,实现label以及textbox序号循环,每循环一次label序号加1,textbox序号乘4,预想公式是:
For Each csm In Sheets("sheet4").Range("b1:b100")
For Each csjg In Sheets("sheet4").Range("d1:d100")
for i =1 to 100
for j =0 to 99
Label[i].Caption = csm.Value
TextBox[j+1].ControlTipText = "参数号:" & csm.Value & ";参数结果:" & csjg.Value
TextBox[j+2].ControlTipText = "参数号:" & csm.Value & ";参数结果:" & csjg.Value
TextBox[j+3].ControlTipText = "参数号:" & csm.Value & ";参数结果:" & csjg.Value
TextBox[j+4].ControlTipText = "参数号:" & csm.Value & ";参数结果:" & csjg.Value
i=i+1
j=i*4
next i
next j
Next csjg
Next csm
最终的结果就是:
Label1.Caption = b1(省略sheets(),下同)
TextBox1.ControlTipText = "参数号:" & b1 & ";参数结果:" & d1
TextBox2.ControlTipText = "参数号:" & b1 & ";参数结果:" & d1
TextBox3.ControlTipText = "参数号:" & b1 & ";参数结果:" & d1
TextBox4.ControlTipText = "参数号:" & b1 & ";参数结果:" & d1
Label2.Caption = b2
TextBox5.ControlTipText = "参数号:" & b2 & ";参数结果:" & d2
TextBox6.ControlTipText = "参数号:" & b2 & ";参数结果:" & d2
TextBox7.ControlTipText = "参数号:" & b2 & ";参数结果:" & d2
TextBox8.ControlTipText = "参数号:" & b2 & ";参数结果:" & d2
……
Label100.Caption = b100
TextBox401.ControlTipText = "参数号:" & b100 & ";参数结果:" & d100
TextBox402.ControlTipText = "参数号:" & b100 & ";参数结果:" & d100
TextBox403.ControlTipText = "参数号:" & b100 & ";参数结果:" & d100
TextBox404.ControlTipText = "参数号:" & b100 & ";参数结果:" & d100
请各位高人指点迷津,分数不多,后续问题也很多,不胜感激
展开
 我来答
蜜桃追剧吧
推荐于2016-02-11 · TA获得超过4616个赞
知道小有建树答主
回答量:935
采纳率:100%
帮助的人:64.5万
展开全部
EXCEL VBA窗体中的label及textbox序号循环设置方法:

1、引用成组的控件时,没有专门的集合对象,窗体中只有一个Controls集合对象,包含了Label、TextBox、ListBox、ComboBox等等控件对象,因此只能通过Controls集合对象进行批量引用。
2、在创建窗体时,可以用一个Frame控件将成组的Label和TextBox控件集合起来,
比如,用名称为Frame_Labels的控件集合100个Label,用名称为Frame_TextBoxes的控件集合100个TextBox。
3、用Userform.Frame_Labels.Controls(0) 引用第一个Label对象。
4、用Userform.Frame_TextBoxes.Controls(0) 引用第一个TextBox对象。
5、Frame_Labels这个对象名称是要你自己定义的啊,创建了Frame对象后,将名称Frame1改成Frame_Labels,这样便于理解代码,直接用Frame1没有问题。
6、用两个Frame控件,是为了区分集合Labels和TextBox。
百度网友ca64c0c
推荐于2016-09-24 · TA获得超过4664个赞
知道大有可为答主
回答量:2991
采纳率:61%
帮助的人:1451万
展开全部
引用成组的控件时,没有专门的集合对象,窗体中只有一个Controls集合对象,包含了Label、TextBox、ListBox、ComboBox、等等控件对象,因此只能通过Controls集合对象进行批量引用

在创建窗体时,可以用一个Frame控件将成组的Label和TextBox控件集合起来,
比如,用名称为Frame_Labels的控件集合100个Label,用名称为Frame_TextBoxes的控件集合100个TextBox
然后用Userform.Frame_Labels.Controls(0) 引用第一个Label对象
用Userform.Frame_TextBoxes.Controls(0) 引用第一个TextBox对象
其余类推即可
更多追问追答
追问
首先先表示感谢!!!\(^o^)/~
我根据你的提示反复测试实现了你所述的部分效果,程序如下,但不能区分Textbox和Label,对于你所说的Frame1_Labels.Controls(0)执行时提示”要求对象“
再有就是怎么实现ControlTipText啊,Frame1.Controls(i).ControlTipText= csm.Value好像行不通
For i = 0 To 9

For Each csm In Sheets("sheet1").Range("a1:a10")
Frame1.Controls(i) = csm.Value
i = i + 1
Next
Next
追答
Frame_Labels这个对象名称是要你自己定义的啊,创建了Frame对象后,将名称Frame1改成Frame_Labels,这样便于理解代码,当然直接用Frame1也没有问题

之所以用两个Frame控件,就是为了区分集合Labels和TextBox

Controls集合对象不支持ControlTipText属性,好像没办法
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式