Ссылка на диапазон по переменной строке вызывает ошибку 1004 - PullRequest
0 голосов
/ 02 марта 2020

У меня есть Sub с несколькими диапазонами, которые называются rng1, rng2, rng3, et c.

Я хочу l oop во всех диапазонах. Я надеялся, что один из этих методов определения диапазонов сработает, но они дают мне «Метод» Range »объекта« _Global »fail»:

Dim str as String
Dim I as Integer
Dim rng1 as Range, rng2 as Range, rng3 as Range

Set rng1 = Range("A10:A75")
Set rng2 = Range("A95:A175")
Set rng3 = Range("A180:A185")

For I = 1 to 3
   Range("rng1").Copy   'I didn't expect that to work
   Range("rng" & I).copy
   Range("rng" & CStr(I)).Copy
   str = "rng" & I
   Range(str).Copy
Next I

EDITED, чтобы уточнить согласно комментариям. Я знаю, что пример кода не делает ничего полезного, но он показывает, что я пробовал.

1 Ответ

2 голосов
/ 03 марта 2020

Вы не можете ссылаться на переменную, создавая ее имя в виде строки. Это не так, как переменная работа. Вам понадобится альтернатива.

Вот один

Dim rng(1 To 3) as Range

Set rng(1) = Range("A10:A75")
Set rng(2) = Range("A95:A175")
Set rng(3) = Range("A180:A185")

For I = 1 to 3
   rng(I).copy
   `...
Next I
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...