Not getting the Correct Range

rguy84

Board Regular
Joined
May 18, 2011
Messages
112
I am really confused what is going on. I am setting a range for a list box, and saying use this specific range but it is looking at the active page still.
Code:
Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    Dim lastR As Long
    
    Set ws = Sheets(2)
    lastR = ws.Range("A" & Rows.Count).End(xlUp).Row
    
    With Me.lbox
        .ColumnCount = 2
        .ColumnHeads = True
        .RowSource = ws.Range("A2:B" & lastR).Address
    End With
End Sub
So if sheets(1) is active, .rowSource acts if I do sheets(1).Range("A2:B" & lastR).Address vs sheets(2).Range("A2:B" & lastR).Address...
Thoughts
 

Excel Facts

Which lookup functions find a value equal or greater than the lookup value?
MATCH uses -1 to find larger value (lookup table must be sorted ZA). XLOOKUP uses 1 to find values greater and does not need to be sorted.
I think you need to drop .Address, i.e. try:
Code:
Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    Dim lastR As Long
    
    Set ws = Sheets(2)
    lastR = ws.Range("A" & Rows.Count).End(xlUp).Row
    
    With Me.lbox
        .ColumnCount = 2
        .ColumnHeads = True
        .RowSource = ws.Range("A2:B" & lastR)
    End With
End Sub
 
Upvote 0
Address does not include the sheet name, so you either need:
Code:
        .RowSource = "'" & ws.Name & "'!A2:B" & lastR
or (preferably IMO):
Code:
.List = ws.Range("A2:B" & lastR).Value
 
Upvote 0
I did the second option, thanks Rory. Any idea why all the examples I foind were like post 1?
 
Upvote 0
Correct. If you need headers, then you must use Rowsource.
 
Upvote 0
I assume .List just throws an array together where as .rowSource actually loost at the sheet?
 
Upvote 0
Yep. Using Rowsource, your listbox is actually bound to the data. If the data changes, events in the listbox will be triggered, which is why I try to avoid it.
 
Upvote 0

Forum statistics

Threads
1,224,599
Messages
6,179,828
Members
452,946
Latest member
JoseDavid

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top