2013-05-03 4 views
0

Я пытаюсь загрузить список со строками из поля сводной таблицы. Я нашел следующий код, который работает для ActiveX Control Listbox, но не для списка UserForm. Элемент UserForm получает ошибку 438. Я работаю с серией UserForms, и элемент управления ActiveX может быть встроен только в рабочий лист.Userform listbox, заполненный значениями сводной таблицы - excel

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

Заранее спасибо за помощь!

ответ

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 совпадает с именем вашего UserForm. Вместо этого используйте ключевое слово ME.

Смежные вопросы