获取命名范围值

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

tonghai0709 回答:获取命名范围值

每个Name都有一个RefersToRange属性,可以为您提供一个Range对象,每个Range都有一个Parent属性,可以为您提供{{1 }}它属于。

因此,如果您有一个Worksheet对象,则始终可以知道它所指的是哪张纸。

本文链接:https://www.f2er.com/3149530.html

大家都在问