Я пытаюсь расширить свои знания VBA, просто тестируя нечетные фрагменты кода и разбирая, как он работает.
Я пытаюсь лучше освоить массивы и понять их немного больше, так как думаю, что у меня будет много практического применения для них, но сейчас я застреваю, когда пытаюсь использовать его вв сочетании с ListObject.
Я создал макрос ниже.Он успешно заполняет массив, а затем помещает содержимое в рабочую таблицу.
Однако проблема, с которой я столкнулся, заключается в том, что я хочу добавить значения в массив, а затем добавить эти значения в таблицу (объекты списка), покасохраняя существующие данные там.На данный момент это просто добавляет данные в начало таблицы и переопределяет любой существующий контент.Я пытался использовать много вариантов добавления строки списка, которая работает, но она помещает только первое значение в массиве в таблице, а не все.
Я хочу создать новую строку,добавьте данные, для каждого фрагмента данных также установите другое значение для столбца в этой строке и затем продолжите.
Например, я хочу, чтобы код выполнял следующие действия:
Search for criteria in Table named PRODUCT
Criteria = "Monthly"
Add all the items in column 3 to an array
Put the content of the array in another table called TRACKER.
For every record put in, set the column called Job Type to STANDARD.
Пока что это то, что я сделал ниже.Это статический массив, так что мне будет легче с ним работать, пока я это выясняю, однако на практике я получу содержимое массива из рабочего листа, отфильтровав объект-список и затем добавив все значения в столбце 3 вмассив.
Sub ArrayExercise_3()
Dim myArray(1 To 5) As Integer
Dim i As Integer
Dim arrTable As ListObject
Dim arrRow As ListRow
Set arrTable = ThisWorkbook.Worksheets("Array2").ListObjects("Table7")
Set arrRow = arrTable.ListRows.Add
myArray(1) = 10
myArray(2) = 20
myArray(3) = 30
myArray(4) = 40
myArray(5) = 50
For i = 1 To UBound(myArray)
arrTable.DataBodyRange.Cells(i, 1) = myArray(i)
arrTable.DataBodyRange.Cells(i, 2) = "TEST"
Next i
End Sub