VBA在TextBox#.value中增加“#”

时间:2014-04-19 17:16:46

标签: excel vba excel-vba excel-2013

我在VBA编码方面需要帮助: 我在用户表单中有近250个TextBox(是值的“矩阵”),当用户完成填充框时,我想在excel表中编写它们。 我可以将所有250行写为

  

WorkSheets(mysheet).Cells(x,y).Value = TextBox#.Value

但这会很长。我想知道是否有办法制作类似的东西,并增加文本框的#。 谢谢,对不起我的英语。

1 个答案:

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