Как зацикливать диапазоны в VBA?

#excel #vba

#excel #vba

Вопрос:

Я новичок в VBA, у меня проблема в том, как зацикливать диапазоны в VBA, например: Range("A1:D1").select чтобы Range("A100:D100").select

или

Range("A1:D1").select кому Range("D1:G1").select ?

Ответ №1:

Примечание: лучше избегать использования Select Activate , и т. Д…

Чтобы перебирать диапазоны, изменяющиеся для каждой строки, используйте For цикл lRow ниже:

 ' loop example per your case
For lRow = 1 To 100
    Range("A" amp; lRow amp; ":D" amp; lRow).Select
Next lRow
  

Чтобы перебирать диапазоны, которые изменяются для каждого столбца, используйте For цикл Col ниже:

 ' loop example per your case
For Col = 1 To 4
    Range(Cells(1, Col), Cells(1, Col   3)).Select
Next Col
  

Комментарии:

1. Большое спасибо. Извините, что снова беспокою, здесь у меня есть еще один вопрос, как зациклить Range("A1")="=SUM(R[-3]C:R[-3]C)" ?

2. вам нужно использовать Range("A" amp; lrow).FormulaR1C1 и в формуле для продвижения R раздела

3. Мне действительно очень жаль, на самом деле я имею в виду, как зациклить «= SUM (R [-3]C: R [-3] C)»?

4. @Stellera — Если вы пытаетесь поместить формулу в ячейку A1, которая ссылается на строку R[-3]C (т.Е. Столбец A в строке -2 ), это не сработает — вы получите #REF! сообщение об ошибке.

5. Да, так есть ли способ справиться с этим?