根据名称将文本框值分配给相应的单元格

时间:2009-01-30 12:24:52

标签: excel vba loops excel-vba textbox

我在表单上有一组文本框,名为sm1,sm2等,我想将它们分配给单元格A1,A2等。有没有办法把它放在一个循环中,即:

For i = 1 to 100
  Cells(i, 1).Value = ("sm" & c).Value
Next i

3 个答案:

答案 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