使用循环将数据放在多个不同的文本框中

时间:2014-09-24 14:33:24

标签: excel loops excel-vba vba

我正在使用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

1 个答案:

答案 0 :(得分:0)

在while循环中,您可以将文本框作为表单控件集合的一部分来实现此目的。假设您的表单名为FORM1:

Do While i < intColumnSelect
  intColumnSelect = intColumnSelect + 1
  Cells(intRowSelect, intColumnSelect).Value = FORM1.Controls("txtDataVal" & i).Value
  i = i + 1
Loop