Удаление именованных диапазонов с помощью файла, разрушающего Excel VBA - PullRequest
0 голосов
/ 04 марта 2020

Я сталкиваюсь с ситуацией, когда при запуске следующих строк кода мой файл повреждается при закрытии и повторном открытии.

Dim MyName As Name
For Each MyName In Names
    ActiveWorkbook.Names(MyName.Name).Delete
Next

Я также пытался заменить код выше со следующим, и получить то же влияние:

Do While CBool(ActiveWorkbook.Names.Count)
    ActiveWorkbook.Names(1).Delete
Loop

Ошибка при повторном открытии файла выглядит следующим образом: «Мы обнаружили проблему с некоторым содержимым в« Файл X.xlsm ». Вы хотите, чтобы мы попытались восстановить столько, сколько мы можем? Если вы доверяете источнику этой книги, нажмите «Да».

После этого файл восстанавливает файл, «восстанавливая или удаляя нечитаемый контент» с помощью сообщение «Удалена особенность: диапазон внешних данных из /xl/worksheets/sheet7.xml part '

Есть идеи, что здесь происходит? Я рад, что смог выделить код, вызывающий проблему, но Я в растерянности. Я использую Excel для Office 365 MSO 32-bit.

1 Ответ

0 голосов
/ 04 марта 2020

Вы не определяете коллекцию, к которой принадлежит Names. Попробуйте изменить, чтобы определить коллекцию имен.

Dim MyName As Name
For Each MyName In ActiveWorkbook.Names
    MyName.Delete
Next
...