我正在尝试使用数据透视表字段中的行加载列表框。我发现以下代码适用于ActiveX控件列表框,但不适用于UserForm列表框。 UserForm控件收到438错误。我正在使用一系列UserForms,而activeX控件只能嵌入到工作表中。
Private Sub ListBox1_Click()
Dim Pf As PivotField
Dim I As Integer
Set Pf = Worksheets("Sheet4").PivotTables(1).PivotFields("Field Name")
With ActiveSheet.ListBox1
.Clear
For I = 1 To Pf.PivotItems.Count
.AddItem Pf.PivotItems(I)
Next
End With
End Sub
原始代码在此处找到:http://www.pcreview.co.uk/forums/fill-listbox-values-pivot-table-field-example-t967653.html
提前感谢您的帮助!
答案 0 :(得分:1)
LinkedIn上的某个人能够回答这个问题,我发布这个问题是因为它有可能帮助其他人:
Private Sub UserForm_Initialize()
Dim pvtTable As PivotTable
Dim pvtField As PivotField
Dim lngIndex As Long
Set pvtTable = Worksheets("Sheet4").PivotTables(1)
Set pvtField = pvtTable.PivotFields("Field Name")
For lngIndex = 1 To pvtField.PivotItems.Count
UserForm1.ListBox1.AddItem pvtField.PivotItems(lngIndex).Name
Next
End Sub
确保引用Userform1与您的用户表单的名称匹配。或者改用ME关键字。