我有两个工作簿,它们具有许多相同的命名范围,并且我需要将值从第二个工作簿移至第一个工作簿。我可以通过指定范围所在的工作表和范围的名称来做到这一点,但是大约有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是工作表名称的数组,其中存储了所有范围。该部分完全按照我的需要工作,我只需要找到一种方法即可从每个图纸中拉出范围并移动它们。但是,我似乎只能找到“命名范围”列表的唯一方法是拉到“工作簿”级别,但这并不能告诉我它在哪张纸上。