我正在使用Excel 2010,开发用于将数据输入到电子表格的用户表单(我们不相信每个最终用户都能在开放的电子表格中正确输入数据)。
目前,每个文本框都被命名为txtDataVal1到N,每个新框的数字都会递增,以下代码用于将数据从文本框移动到电子表格:
'intRowSelect is given a value elsewhere, by the user's list box selection
Cells(intRowSelect, 2).Value = txtDataVal1.Value
Cells(intRowSelect, 3).Value = txtDataVal2.Value
....
Cells(intRowSelect, 20).Value = txtDataVal20.value
我的问题:有没有办法编写一个简单的循环来增加txtDataVal末尾的数值,所以我上面没有超过100行的庞大代码?
例如(我知道这是一个非功能性的例子,考虑它是伪代码):
Dim i as Integer
Dim intColumnSelect as Integer
intColumnSelect = 1
i = 1
Do While i < intColumnSelect
intColumnSelect = intColumnSelect + 1
Cells(intRowSelect, intColumnSelect).Value = "txtDataVal" + i.Value
i = i + 1
Loop
答案 0 :(得分:0)
在while循环中,您可以将文本框作为表单控件集合的一部分来实现此目的。假设您的表单名为FORM1:
Do While i < intColumnSelect
intColumnSelect = intColumnSelect + 1
Cells(intRowSelect, intColumnSelect).Value = FORM1.Controls("txtDataVal" & i).Value
i = i + 1
Loop