EXCEL VBA Перебор циклом динамического диапазона

Автор ArgentumZ, 24.06.2012, 00:47

« назад - далее »

ArgentumZ

Здравствуйте!
Использую динамические диапазоны (одномерные), вот формула
=СМЕЩ('Служебная информация'!$B$3;0;0;СЧЁТЗ('Служебная информация'!$B:$B)-1;1)
В макросе столкнулся с необходимостью перебрать именованный диапазон ячеек циклом. Со статичным именованным диапазоном проблем нет.
Dim Mas As Range

Set Mas = ThisWorkbook.Names("Тестовое").RefersToRange

Mas получает диапазон и его можно перебрать
Когда же указываю имя динамического диапазона, то выдает ошибку 1004 Application-defined or object-defined error и указывает на строку с присвоением значения переменной Mas

Как все-таки перебрать динамический диапазон циклом?

В приложении файл, в котором можно глянуть на код. Я все лишние листы,диапазоны,данные,макросы поудалял. Оставил две странички, один диапазон и макрос в пять строчек кода.

kuklp

#1
Проще надо быть:-)
Sub TestFunc()
   Dim MyCell As Range, Mas As Range
   Application.ScreenUpdating = False
   Set Mas = Range("СпрДинДиапазон")
   i = 1
   For Each MyCell In Mas
       Application.ActiveWorkbook.Worksheets("Тест").Cells(i, 1).Value = MyCell.Value
       i = i + 1
   Next
   Application.ScreenUpdating = True
End Sub

Но может Вам так проще будет:
Sub TestFunc()
   Dim a: a = Range("СпрДинДиапазон").Value
   Worksheets("Тест").[a1].Resize(UBound(a)) = a
End Sub

Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771