Вы захотите добавить вспомогательный лист, чтобы при добавлении в список ( Me.ListBox1.List (ListBox1.ListCount - 1, X - 1) = ws.Cells (i, X) ) та же самая информация вставляется на вспомогательный лист, чтобы поддерживать список, позволяющий отправить этот лист в PDF.
Что-то подобное должно привести вас туда, внутри вашего Для цикла X :
With Sheets("Sheet3")
.Cells(.Rows.Count,1).End(xlUp).Row,1).Value = ws.Cells(i, X)
End With
Обратите внимание, что в вашем коде вы объединяете гораздо больший список,поэтому эффективный способ собрать только этот консолидированный список состоял бы в том, чтобы поместить его в свое собственное местоположение для последующего использования.
Вы можете добавить цикл в макрос PDF для учета этого другого листа, например:
Dim i as long, arr as variant
arr = array("Sheet1","Sheet3")
For i = lbound(arr) to ubound(arr)
With Sheets(arr(i))
'PDFing macro
End with
Next i
Edit1:
Надеюсь, немного яснее (обратите внимание, что вам может понадобиться добавить лист в книгу, так как я произвольно использую Sheet3):
For X = 1 To 8
Me.ListBox1.List(ListBox1.ListCount - 1, X - 1) = ws.Cells(i, X)
With Sheets("Sheet3")
.Cells(.Rows.Count,1).End(xlUp).Row,1).Value = ws.Cells(i, X)
End With
Next X