将值从列表框复制到工作表单元格

时间:2018-08-29 16:55:18

标签: excel vba listbox

我正在使用VBA,但有一个我找不到解决方案的问题。我创建了一个带有文本框,列表框和两个按钮的UserForm。如果在文本框中输入文本并单击Button1,则文本框的文本将通过命令ListBox.AddItem添加到列表框中。这部分工作正常。

如果单击Button2,它将把ListBox的条目复制到Excel工作表中。我在这部分上有问题。代码如下:

For i = 0 To ListBox1.ListCount - 1
    ListBox1.Selected(i) = True
    ActiveSheet.Cells(2, 3) = ListBox1.Value
    ListBox1.Selected(i) = False
Next i

如果我打开UserForm并在ListBox中的任意位置单击一次,此代码将非常正常。从那时起,代码就可以正常工作了。我也可以关闭UserForm并再次打开它。仍然可以。

如果我打开整个Excel文件和用户窗体,并且没有在列表框的任何位置单击一次,就会出现问题,它只是不复制内容。该代码本身仍然可以运行并执行。似乎命令ListBox1.Value没有内容。有没有更好的方法来解决我的问题?

1 个答案:

答案 0 :(得分:0)

如果要将项目列表中已填充的列表框中的项目放置在工作表上,可以尝试执行以下操作...

Dim x
x = Me.ListBox1.List
Range("C2").Resize(UBound(x) + 1, 1).Value = x

根据您的要求进行调整。