VBA Итерация через ячейки

Я ищу способ итерации через ячейки на листе, чтобы вставить значения.

Код, указанный ниже, не будет распознавать местоположения ячеек. Есть ли способ закодировать ячейку, чтобы постепенно вставлять информацию в нужные места? Я хочу, чтобы код сначала вставлял значение в A1: C1, а затем переместился на 4 пробела и отправил в E1: G1 и так далее.

Не уверен, как перебирать буквы для перемещения ячейки.

Sub test() Dim x As Integer Dim y As Integer Dim InputSheet As Worksheet Dim myBook As Workbook Set myBook = Excel.ActiveWorkbook Set InputSheet = myBook.Sheets("InputSheet") For y = 0 To 5 x = 4 InputSheet.Range("A1 + 4*y : C1 + 4*y").Value = x Next y End Sub 

Вы говорите книге, чтобы буквально искать диапазон «A1 + 4 * y: C1 + 4 * y», который, очевидно, не является допустимым адресом. Вам нужно оценить числовое выражение вне строки, преобразовать обратно в строку (либо явно использовать Cstr либо вы можете поместить выражение в круглые скобки и позволить компилятору сделать это для вас, поскольку VBA динамически типизируется, что является важной концепцией, которую вы можете захотеть для поиска. В принципе, он может понять из контекста, что он имеет дело с переменной типа строки) и, наконец, привязать его к вашему адресу, чтобы это работало.

Поскольку вы, похоже, новичок в vba / coding, я бы посоветовал вам выяснить, как использовать контрольные точки и часы, чтобы увидеть, как ваша машина действительно оценивает ваши переменные.

 InputSheet.Range("A" & (1+4*y) & ":C" & (1+4*y)).Value = x 

Я бы попытался использовать «Ячейки» для этого.

 Sub test() Dim x As Integer Dim y As Integer Dim InputSheet As Worksheet Dim myBook As Workbook Set myBook = Excel.ActiveWorkbook Set InputSheet = myBook.Sheets("InputSheet") For y = 0 To 5 x = 4 InputSheet.Range(InputSheet.Cells(1, 4 * y + 1), InputSheet.Cells(1, 4 * y + 3)).Value = x Next y End Sub 

Вы можете использовать функцию смещения.

 For i = 0 to 5 x = 4 InputSheet.Range("A1:C1").Offset(0, i * 4) = x Next i 
Interesting Posts

Асинхронный вызов inprocess COM-DLL из VSTO Excel Addin?

Автоматическое изменение размера таблицы для соответствия экрану

Просмотреть код, когда модальный диалог открыт в Excel

Как я могу «переформатировать» цифры в Excel?

импортировать огромные листы Excel в Datatable

Не удается найти причину моего кода.

Выдача формулы ранга Excel

Excel VBA + Возвращает несколько строк в TextBox на основе значений в ComboBox

Как я могу предотвратить отображение индикаторов ошибок «Number Stored in Text» в листе Excel, экспортированном из отчета SSRS?

Загрузка CSV-файла из Mac – PHP

Excel VBA FormulaR1C1 Ошибка 1004

Как найти объединенные ячейки с конкретной информацией и сохранить значение строки для дальнейшего использования VBA

Формирование форматирования доступа к базам данных или утверждение или группировка

Ошибка обновления версии VBA Variant Spreadsheet

Линейная диаграмма Excel Только уникальные даты

Давайте будем гением компьютера.