0

フォームにsm1、sm2などと呼ばれる一連のテキストボックスがあり、それらをセルA1、A2などに割り当てたいと考えています。これをループに入れる方法はありますか?

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

3 に答える 3

3

VBAについてはわかりませんが、フォームに「コントロール」コレクションが必要です。上記のように、コントロール名でこの要素にアクセスできます。

cells(i,1).Value = Controls("sm"&c).Value
于 2009-01-30T12:28:03.207 に答える
1

別の方法はControlSource、各テキストボックスのプロパティを使用して、それらを関連するセルにバインドすることです

于 2009-01-31T02:01:58.743 に答える
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
于 2009-01-30T12:47:38.893 に答える