我在表单上有一组文本框,名为sm1,sm2等,我想将它们分配给单元格A1,A2等。有没有办法把它放在一个循环中,即:
For i = 1 to 100
Cells(i, 1).Value = ("sm" & c).Value
Next i
答案 0 :(得分:3)
不确定VBA,但表单上应该有“控件”集合,您可以通过控件名称访问此元素,如上所示。
cells(i,1).Value = Controls("sm"&c).Value
答案 1 :(得分:1)
另一种方法是使用每个文本框的ControlSource
属性将它们绑定到相关的单元格
答案 2 :(得分:0)
使用表单上的文本框,您可以使用Controls集合。
For Each oControl In Me.Controls
If Typename(oControl) = "TextBox" Then
iCellNumber = Val(Mid$(oControl.Name, 3)) 'Assumes all textboxes have two letter names
cells(iCellNumber ,1).Value = val(oControl.Text)
End If
Next oControl
如果控件在工作表上,您可以使用该工作表上的形状集合
For Each oControl In Me.Shapes
If InStr(oControl.Name, "TextBox") = 1 Then
iCellNumber = Val(Mid$(oControl.Name, 3))
cells(iCellNumber ,1).Value = val(oControl.Text)
End If
Next oControl