无法设置RowSource属性。无效的属性值

时间:2016-01-13 08:24:10

标签: excel vba excel-vba listboxitem

我有一个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表,其中包含数据。

enter image description here

2 个答案:

答案 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逐步执行代码,这将逐步执行代码的每一行。看看这些变量是否正在收集值。

Variables

如果您在单步行中没有值,那么" TempFile"可能会出现问题,例如错误的表格或其他内容。

还要确保列表框属性中的Rowsource为空。

enter image description here

您也可以使用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