Обновление: провёл какое-то исследование, и теперь у меня есть код ниже
Мне сегодня очень помогли ваши боги, поэтому вот еще один вопрос о том, чего я никогда раньше не делал в Excel VBA:
У меня есть код, который выбирает значения из основной таблицы, создает меньшую временную таблицу, а затем сортирует таблицу. Это достаточно просто, но я бы хотел добавить эти значения в список элементов управления формы. Код, который у меня есть, следующий:
Sub Tester()
Dim dateSel As Variant
Dim sevLev, i, rw As Integer
Dim dRange, keyRange, listRange As Range
Dim listArray() As String
sevLev = 1
dateSel = "12/4/2019"
With Sheets("All_Risk_Report")
.Range("A1").AutoFilter _
field:=2, _
Criteria1:=dateSel
.Range("A1").AutoFilter _
field:=13, _
Criteria1:=sevLev
End With
Sheets("All_Risk_Report").Range("A1:AZ50000").SpecialCells(xlCellTypeVisible).Copy
Sheets.Add Before:=ActiveSheet
ActiveSheet.Name = "TempTable2"
Sheets("All_Risk_Report").Range("F:F").SpecialCells(xlCellTypeVisible).Copy
Sheets("TempTable2").Cells(1, 1).PasteSpecial
Sheets("All_Risk_Report").Range("C:C").SpecialCells(xlCellTypeVisible).Copy
Sheets("TempTable2").Cells(1, 2).PasteSpecial
Sheets("All_Risk_Report").Range("E:E").SpecialCells(xlCellTypeVisible).Copy
Sheets("TempTable2").Cells(1, 3).PasteSpecial
Sheets("All_Risk_Report").Range("I:I").SpecialCells(xlCellTypeVisible).Copy
Sheets("TempTable2").Cells(1, 4).PasteSpecial
Sheets("All_Risk_Report").ShowAllData
Set dRange = Sheets("TempTable2").Range("A1:D500")
Set keyRange = Sheets("TempTable2").Range("A1:A500")
dRange.Sort key1:=keyRange, Header:=xlYes
Set listRange = Sheets("TempTable2").Range("A1:D500")
With Sheets("Calendar").Shapes.Range(Array("List Box 1"))
.Clear
.ColumnHeads = False
.ColumnCount = listRange.Columns.Count
ReDim MyArray(listRange.Rows.Count, listRange.Columns.Count)
rw = 0
For i = 1 To listRange.Rows.Count
For j = 0 To listRange.Columns.Count
MyArray(rw, j) = listRange.Cells(i, j + 1)
Next
rw = rw + 1
Next
.List = MyArray
.TopIndex = 0
End With
End Sub
Я не совсем уверен, как это сделать. У меня уже есть созданная таблица, но я почти не использовал элементы управления формой.
По сути, это будет миниатюрное окно с возможностью прокрутки внутри самого листа, содержащее небольшое подмножество данных. Пожалуйста, дайте мне знать, если это имеет смысл, и если у вас есть какие-либо советы / предложения / советы. Спасибо!