У меня есть две книги, в которых много одинаковых именованных диапазонов, и мне нужно переместить значения из второй книги в первую. Я могу сделать это, указав, на каком листе находится диапазон и имя диапазона, но существует около 200 именованных диапазонов, распределенных по более чем 20 листам, и мне нужны только именованные диапазоны, которые находятся на 11 из этих листов. Я мог бы потратить время на то, чтобы разобраться в этом, и жестко написать код для каждого из них, но мне бы очень хотелось, чтобы это был в основном автоматический процесс. Таким образом, если новый диапазон добавлен, это может быть сделано автоматически, и мне не нужно обновлять код.
Код, который у меня пока есть:
For Each Name In sheetList
Set sheet2vals = sheet2.Sheets(Name).Range(rangename)
Set sheet1vals = sheet1.Sheets(Name).Range(rangename)
sheet2vals.Copy sheet1vals
Next Name
sheetList isмассив имен листов, где хранятся все диапазоны. Эта часть работает именно так, как мне нужно, мне просто нужно найти способ вытащить диапазоны из каждого из листов и переместить их. Тем не менее, единственный способ найти список именованных диапазонов - это потянуть на уровне рабочей книги, что не говорит мне, на каком листе он находится.