【发布时间】:2015-01-04 07:06:53
【问题描述】:
我在 Excel VBA 的用户表单上有一个名为 listBox1 的列表框,在表单上还有一个名为 submit 的按钮。列表框是从表格 2 的单元格 A2 开始的动态范围填充的。我想将此列表框的内容导出到表格 1 上名为 dataCells 的命名范围。我当前使用的代码很接近,但不知何故将列表框数据导出到工作表 1 的单元格 A1,而不是从命名范围“数据单元格”的第一个单元格开始。我究竟做错了什么?
//Code to populate listBox 1
Private Sub Userform1_initialize()
Dim dataItems as Range
Dim item as Range
worksheets("sheet2").Activate
Set dataItems = Range("A2" , Range("A2").end(xlDown))
for each item in dataItems
listbox1.addItem(item)
Next item
End sub
//Code to export the listbox contents to named range in sheet 1
Private Sub Submit_Click()
Dim dataCells as Range
Dim dataCount as Integer
Dim i as integer
worksheets("sheet1").Activate
dataCount = listBox1.ListCount - 1
set dataCells = Range("B2" , Range("B2").offset(0, dataCount))
for i = 0 to listBox1.ListCount - 1
dataCells(0, i) = listBox1.list(i , 0) // exports to A1 of sheet 1??
next i
End sub
【问题讨论】:
-
dataCells将是一个从一开始的二维数组,而不是从零开始的。在 VBE 的即时窗格中,? Range("B2").Cells(0,0).Address()给出“$A$1”