Nimmy
Мой пост не об ответе на ваш главный вопрос :) Если вы посмотрите на комментарий Кена и Коди, вы автоматически поймете, что это за ответ;)
Я не мог не прокомментировать, когда увидел ваш код и ваше заявление о том, что вы новичок. Я помню свои дни, когда я изучал кодирование, и такие форумы, как SO, помогли мне улучшить мои навыки программирования. Таким образом, вы можете рассматривать это как окупаемость: -D
1) В вашем случае это нормально, что вы затеняли i как целое число , но что происходит, когда вы имеете дело со строками, которые намного больше, например 32768 строк. При работе в VBA Excel безопаснее затемнить i на .
2). Выберите - это основная причина ошибок при работе в VBA, не говоря уже о том, что они замедляют работу вашего кода. Тот же код также может быть написан как код, приведенный ниже. Я предполагаю, что между первой строкой и последней строкой нет пустых значений.
Dim i As Long
Dim ag(0 To 7000) As String
Dim bg(0 To 7000) As String
Dim ws As Worksheet
Private CommandButton1_Click()
Set ws = Sheets("New")
With ws
For i = 2 To .Range("B" & .Rows.Count).End(xlUp).Row
ag(i) = .Range("B" & i).Value
Next
For i = 2 To .Range("D" & .Rows.Count).End(xlUp).Row
bg(i) = .Range("D" & i).Value
Next
End With
End Sub
HTH и да, Happy Coding;)
Sid