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
请各位高人指点迷津,分数不多,后续问题也很多,不胜感激 展开
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
请各位高人指点迷津,分数不多,后续问题也很多,不胜感激 展开
2个回答
展开全部
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。
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。
展开全部
引用成组的控件时,没有专门的集合对象,窗体中只有一个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对象
其余类推即可
在创建窗体时,可以用一个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属性,好像没办法
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询