结束(xlUp)仅在工作表有效时才有效

may*_*r2j 1 excel vba range excel-vba

我有以下代码

Set wb = ThisWorkbook`

ComboBox7.RowSource = wb.Worksheets("Sheet5").Range("A2", _
Range("A65536").End(xlUp)).Address
Run Code Online (Sandbox Code Playgroud)

如果我没有wb.Sheets("Sheet5").Select在此行之前放置,则此代码会抛出错误

"Application defined or object-defined error"

我希望这段代码能够在不选择Sheet5的情况下工作.

如果我放,ComboBox7.RowSource = wb.Worksheets("Sheet5").Range("A2:A7").Address那么它没有选择sheet5工作正常.

End(xlUp)没有选择表单有什么方法可以使用吗?

Sid*_*out 5

对的,这是可能的.

逻辑:找到最后一行,然后使用它创建一个可以分配给组合框的范围.

这是你在尝试什么?

Private Sub CommandButton1_Click()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim lRow As Long
    Dim rng As Range

    Set wb = ThisWorkbook
    Set ws = wb.Sheets("Sheet5")

    With ws
        lRow = .Range("A" & .Rows.Count).End(xlUp).Row
        Set rng = .Range("A1:A" & lRow)
    End With

    ComboBox5.RowSource = rng.Address
End Sub
Run Code Online (Sandbox Code Playgroud)