Отсутствие именованных диапазонов при копировании из одной книги в другую - PullRequest
0 голосов
/ 04 октября 2019

Большинство именованных диапазонов копируются правильно, а некоторые нет. Глядя в диспетчер имен скопированного файла, диапазоны, которые не копируются правильно, по-прежнему относятся к исходному файлу, а не к копии. Те, которые правильно копируют, указывают на локальную копию, как и должны.

Sub Test()
    Dim TemplateTemplate As Worksheet, SummaryTemplate As Worksheet
    Dim datafile As Workbook

    With ActiveWorkbook
        Set TemplateTemplate = .Sheets("Template")
        Set SummaryTemplate = .Sheets("Summary")
    End With

' Open up a new workbook
`    Set datafile = Workbooks.Add

`' Copy worksheets to new "datafile"
    SummaryTemplate.Copy After:=datafile.Sheets(datafile.Sheets.Count)  ' All named ranges copied
    TemplateTemplate.Copy After:=datafile.Sheets(datafile.Sheets.Count) ' Missing 4 named ranges
    TemplateTemplate.Copy After:=datafile.Sheets(datafile.Sheets.Count) ' Missing 4 named ranges
End Sub

Нет сообщений об ошибках, но 4 из 10 именованных диапазонов из TemplateTemplate не копируются правильно. Если я закомментирую копию SummaryTemplate, то все диапазоны от TemplateTemplate будут скопированы. Если я изменяю порядок, то есть TemplateTemplate, скопированный до SummaryTemplate, тогда все диапазоны копируются корректно. Глядя на Name Manager, нет ничего уникального в определении 4 диапазонов в исходном файле. Глядя в Диспетчер имен для копий, неправильные копии относятся к исходному файлу, а не к файлу копии («файл данных»).

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