VBA:来自用户输入的可变长度数组(6个可选文本框)

时间:2014-12-12 09:14:29

标签: arrays excel vba variables

我有一个包含6个文本框的UserForm,用户可以填写(或不填写)2,3,4或6或他/她想要的任何内容。这些被称为:

eb1,eb2,eb3,...

在表格的最后还有一个“接受”字样。 buttom,当用户点击它时,文本应如下所示:

eb1,eb2,eb3,eb4 ......

当然其中一个问题是如果用户只填写3个框,结果可能是:

eb1,eb2,eb3 ,,,

我该怎么做?我想我需要类似变量数组和for循环的东西,但不知道怎么做,我对VBA很新。

非常感谢。

1 个答案:

答案 0 :(得分:-1)

请尝试以下操作。 使用6个文本框创建用户表单&将它们命名为eb1,eb2,eb3,eb4,eb5& EB6。然后添加命令按钮&将代码粘贴到它下面。然后运行userform&在文本框中输入一些值。 单击命令按钮以查看msgbox。

Private Sub CommandButton1_Click()
dim str as string
dim a as integer

'Check for text box name & loop through textboxes
for a=1 to 6 'No of text boxes have.(remember that your text boxes should have names like eb1
'find out if there is any blank textboxes & avoid them
if Controls("eb" & a).Value <> "" then
'Correction for front , if eb1 is empty
if str="" then
str=Controls("eb" & a).Value
else
str=str & " , " & Controls("eb" & a).Value
end if
end if
next
msgbox str
end Sub

最终消息框将为您提供所需的结果。 (如果我清楚地理解你的问题)。我假设您不需要显示任何关于空文本框的内容。

Keashan