2016-07-22 102 views
1

我有一個範圍,我正在調換和分配給一個帶有rowsource的列表框。當我將我的範圍(TSelected_Range)分配給rowsource的行上運行我的程序時,出現'Object required'錯誤。任何想法?需要的對象:VBA Excel

Set Selected_Range = WS_Sel.Range(WS_Sel.Cells(2, 1), WS_Sel.Cells(counter + 1, LstCol1)) 
Dim TSelected_Range As Variant 
TSelected_Range = Application.Transpose(Selected_Range) 

With TabData.DataTable 
    .ColumnHeads = True 
    .ColumnCount = counter + 1 
    .RowSource = TSelected_Range.Value ********errors here 
End With 
+0

聲明TSelected_Range作爲'Range'而不是' Variant'?例如'Dim TSelected_Range As Range' – Jordan

+0

試過了。它不起作用:( – Liz

回答

2

這應該爲你工作我用數組和列表屬性來代替:

Set Selected_Range = WS_Sel.Range(WS_Sel.Cells(2, 1), WS_Sel.Cells(counter + 1, LstCol1)) 
Dim TSelected_Range() As Variant 
TSelected_Range = Selected_Range.Value 
TSelected_Range = Application.Transpose(TSelected_Range) 

With TabData.DataTable 
    .ColumnHeads = True 
    .ColumnCount = counter + 1 
    .List = TSelected_Range 
End With 
+0

工作!謝謝! – Liz

1

使用List財產

With TabData.DataTable 
    .ColumnHeads = True 
    .ColumnCount = counter + 1 
    .List = TSelected_Range 
End With 
+0

仍然說'需要的對象':( – Liz

+0

我認爲'TabData'是UserForm的名稱,而'DataTable'是其中的ListBox控件的名稱 – user3598756

+0

這是正確的! – Liz