Так что я действительно новичок в Excel, и я пытаюсь скопировать некоторые значения в ячейку в массив и позже отобразить массив в столбце. Итак, у меня есть список первых имен в столбце (A). Затем у меня есть список чисел рядом с именами в столбце (B). Так что я пытаюсь сделать, это цикл через числа, и если любое из чисел равно 4. скопируйте имя, соответствующее числу, в мой массив. и позже отобразить, что массив позволяет говорить в столбце D. Это то, что у меня есть до сих пор.Цитирование через столбец и копирование значений из ячейки в массив
Option Explicit
Public Sub loopingTest()
Dim FinalRow As Long '
Dim i As Long 'varable that will loop through the column
Dim maxN As Integer 'variable that will hold the maximum number
Dim j As Long 'variable that will hold the index of the array
Dim ArrayTest As Variant
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row ' will get the last row
For i = 1 To FinalRow 'loop until the last row
If Range("B" & i) = 4 Then 'if any of the values of column B matches 4 then
ArrayTest(j) = Range("A" & i) 'copy the value corresponding to column A to the array
j = j + 1 'increment array index
End If 'end of endif
Next i 'increment column
'output array into column D
For x = 1 to FinalRow
Range("D" & x) = ArrayTest(x)
Next x
End Sub
Будет ли это правильным способом? Также, если бы я обновил столбец B до любых чисел, мне бы понравился столбец D для автоматического обновления. Любая помощь была бы оценена
Спасибо много. Кажется, что он работает, но есть ли способ, чтобы массив автоматически обновлялся, когда я вручную меняю номера в столбце B? –
@JacobRuvalcaba способ обновления массива состоял в том, чтобы перезапустить макрос. См. Мой обновленный ответ. Здесь, в stackoverflow, мы говорим «спасибо», принимая и отменяя ответы :) –
Фактически, если я обновляю значения в столбце B, мои предыдущие результаты в столбце D все еще отображаются. Итак, как очистить массив, прежде чем снова отобразить массив? –