Как автоматически перебирать метку именованного диапазона - PullRequest
0 голосов
/ 15 мая 2019

У меня столько же именованных диапазонов в моем wsI с другой меткой (список с другим номером строки, но с тем же номером столбца) (es. ListA = Sheet1! $ A $ 2: $ E $ 4, listB = Sheet1! $ A $ 5: $E $ 6 и т. Д.).Теперь я хочу скопировать мой именованный диапазон в wsO, этот код работает так, как я ожидаю:

 Sub CopyNamedRange()
 Dim wsI As Worksheet, wsO As Worksheet

 Set wsI = ThisWorkbook.Sheets("Sheet1")
 Set wsO = ThisWorkbook.Sheets("Sheet2")

 wsO.Range("A1")= "listA"
 wsO.Range("listA").Copy wsO.Range("B1") 

 End Sub

В результате мы копируем ячейки listA из Sheet1! $ A $ 2: $ E $ 4 в Sheet2! $B $ 1: $ F $ 3, если на Листе 2! А1 напишите «listA».Теперь я хочу знать, возможно ли создать макрос, который проходит через все мои метки именованного диапазона в wsI и, в соответствии со значением в Sheet2! A1, копирует все ячейки.Во-вторых, я введу второй цикл через столбец «A» на Sheet2, чтобы найти все различные «listX» (например, listA, listB, listA, listC, listB и т. Д.) И автоматически скопировать ячейки в Sheet2.(очевидно, если A1 = listA будет занимать 3 строки от 1 до 3, следующая ячейка в столбце A с «listX» будет в формате A4 и т. д.).

Ответы [ 2 ]

0 голосов
/ 16 мая 2019

Вот код моего вопроса, если кому-то интересно) вместо всей рабочей книги?Я пытался заменить

  For Each nm In ThisWorkbook.Names

на

  For Each nm In wsI.Names   

Но, похоже, не работает.

Есть идеи?Как вы думаете, это было возможно?

PS: Это просто ограничить исследование именованным диапазоном и избежать ненужного цикла!

0 голосов
/ 15 мая 2019

Вот как:

Option Explicit
Sub Test()

    Dim MyNAmes As Name

    For Each MyNAmes In ThisWorkbook.Names
        'Your code
    Next MyNAmes

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...