2016-01-22 119 views
3

任何人都可以解釋我的代碼有什麼問題嗎?我正在試圖在行數組上填充一個ListBox。我得到了運行時錯誤438.對象不支持這個屬性或方法,但不清楚我編碼錯了什麼。任何幫助修復將非常感激。從行數組填充列表框

Private Sub ListBox1_Click() 
Dim LastRow As Long 

With Sheets("TempList") 
    LastRow = .Range("A" & Rows.Count).End(xlUp).Row 
End With 

Sheets("tblSurveyMatches").ListBox1.RowSource = Sheets("TempList").Range("A2" & LastRow) 

End Sub 

謝謝。

回答

1

如果這是您的工作表上的ActiveX控件,這將起作用,您需要使用ListFillRange而不是RowSource

Sheets("tblSurveyMatches").ListBox1.ListFillRange= Sheets("TempList").Name & "!" & Range("A2:A" & LastRow).Address 

請注意,這是正常最佳實踐來限定Range到工作表,但在這種情況下,因爲我們需要的是一個地址字符串,它並不像這裏重要的。

+0

它出於某種原因似乎沒有填充列表框。不知道爲什麼。 – Chris2015

+0

@ Chris2015查看ListBox屬性。在運行代碼後,它在ListFillRange中說了什麼? –

+0

TempList!$ A $ 217 .....似乎不是真正的範圍 – Chris2015

0

您可能已將表單控件添加到工作表而不是ActiveX控件;表單控件由表格(「tblSurveyMatches」)處理。形狀集合。

由於表格中沒有ListBox1(「tblSurveyMatches」)(如果它是一個ActiveX控件,的確會存在),所以會引發錯誤。