2014-12-05 103 views
0

好的,所以我完全被這個難住了。下面是工作,現在不是。我正在嘗試提取數據以填充列表框。當計算我的數據的行數(當前是A1:D4)時,行和列計數都返回值'1'。我無法理解它。該列可以簡單地爲4,因爲這不是可變的,但我需要這個來計算行數!Excel VBA生成列表框(定義範圍)

Sub generateListbox() 
Dim wb As Workbook 
Dim ws As Worksheet 
Dim rng As Range 

Set wb = Workbooks.Open("C:\Users\masta p\Desktop\Egencia\Data.xlsx") 

Set ws = [Sheet1] 

'define end of range 

     With ws 

     lRow = .Rows(Rows.Count).End(xlUp).Row 
     lCol = .Cells("1" & .Columns.Count).End(xlToLeft).Column 

'set rng 

     Set rng = .Range(.Cells(1, 1), .Cells(lRow, lCol)) 

MsgBox lRow 
MsgBox lCol 

MsgBox rng.Address 

Me.ListBox1.RowSource = rng.Address 

Workbooks("Data.xlsx").Close 

End With 

End Sub 

回答

0

嘗試改變:

lRow = .Rows(Rows.Count).End(xlUp).Row 
lCol = .Cells("1" & .Columns.Count).End(xlToLeft).Column 

的東西,如:(?最大)

lRow = .Cells(Rows.Count, dataCol).End(xlUp).Row 
lCol = .Cells(dataRow, Columns.Count).End(xlToLeft).Column 

其中dataCol與列沒有行的,你有興趣 和dataRow是您最感興趣的排序(最大?)no列