我在VBA编码方面需要帮助: 我在用户表单中有近250个TextBox(是值的“矩阵”),当用户完成填充框时,我想在excel表中编写它们。 我可以将所有250行写为
WorkSheets(mysheet).Cells(x,y).Value = TextBox#.Value
但这会很长。我想知道是否有办法制作类似的东西,并增加文本框的#。 谢谢,对不起我的英语。
答案 0 :(得分:3)
一个选项是使用如下代码,它将为您提供每个文本框。另一种选择是如果方框用一个尾随数字命名(即Txt1,Txt2等),那么你可以使用其他代码(即Me.Controls(“TextBox”& i).Value
Dim cCTL As Control
Dim iCTR As Integer
iCTR = 0
For Each cCTL In Me.Controls
If TypeName(cCTL ) = "TextBox" Then
iCTR = iCTR + 1
WorkSheets(mysheet).Cells(iCTR,y).Value = cCTL.Value
End If
Next cCTL
选项二(因为所有控件都已编号:只需将For循环设置为正确的控件数,并将'mysheet'参考更改为您想要的列和行。
Dim i As Integer
For i = 1 to 250
WorkSheets(mysheet).Cells(i+2,y).Value = Me.Controls("ctr" & i).value
Next i