我有一个excel,我在列A'中填充了一些数据,我希望数据显示在我的用户表单中的列表框中。但我反复得到运行时错误380说明"无法设置RowSource属性。无效的属性值" 以下是代码。
Private Sub ComboBox1_Change()
Dim wb123 As Workbook, TempFile As Workbook
Dim Tempsheet As Worksheet
Dim Last_Row As Integer
Set wb123 = ThisWorkbook
Set TempFile = Workbooks.Open("C:\Users\inkapb\AppData\Local\Temp\EPC AutoTool\Projects\" & Me.ComboBox1.Text & "\Template.xlsm")
Set Tempsheet = TempFile.Worksheets("Sheet2")
Last_Row = Tempsheet.Cells(Tempsheet.Rows.count, "A").End(xlUp).Row
With ListBox1
.ColumnCount = 1
.ColumnWidths = "50"
.RowSource = Tempsheet.Range("A2:A" & Last_Row).Address
End With
End Sub
这是我的excel表,其中包含数据。
答案 0 :(得分:2)
作为快速解决方案,您可以替换
node ./target/scala-2.11/example-opt.js
带
.RowSource = Tempsheet.Range("A2:A" & Last_Row).Address
另一种方法是使用.RowSource = "=Sheet2!A2:A" & Last_Row
循环来遍历单元格并一次添加一个。如果我想在将项目添加到我的组合框之前做一些额外的操作,我通常会使用以下方式,例如有一个For
语句来判断我是否想要添加该单元格值。
If
答案 1 :(得分:1)
代码适用于我,当您在Userform模块中时,按F8逐步执行代码,这将逐步执行代码的每一行。看看这些变量是否正在收集值。
如果您在单步行中没有值,那么" TempFile"可能会出现问题,例如错误的表格或其他内容。
还要确保列表框属性中的Rowsource为空。
您也可以使用List Properties而不是rowsource,例如:
Private Sub ComboBox1_Change()
Dim wb123 As Workbook, TempFile As Workbook
Dim Tempsheet As Worksheet
Dim Last_Row As Long, rng As Range
Set wb123 = ThisWorkbook
Set TempFile = Workbooks.Open("C:\Users\Dave\Downloads\" & ComboBox1)
Set Tempsheet = TempFile.Worksheets("Sheet2")
With Tempsheet
Last_Row = .Cells(.Rows.Count, "A").End(xlUp).Row
Set rng = .Range("A2:A" & Last_Row)
End With
With ListBox1
.ColumnCount = 1
.ColumnWidths = "50"
.List = rng.Value
End With
TempFile.Close True
End Sub