У меня есть эта странная проблема. У меня есть проект vba, где исследователь проекта отображает более одного объекта книги. Это точно так же, как в вопросе this SO, но у меня нет никаких ошибочных ссылок для снятия отметки.Более одного объекта книги в проекте explorer
Однако, я знаю, что вызвало это, и я уверен, что вы все можете дублировать. То, что я сделал, было использовать кодовое имя для листа в качестве аргумента byref для простого поднабора и в конце поднабора, опуская объект рабочего листа. Поэтому я обрисовал весь лист по ссылке.
Что-то вроде:
Option Explicit
Sub test_1()
test_2 sh:=Sheet2
End Sub
Sub test_2(ByRef sh As Worksheet)
Set sh = Nothing
End Sub
Если вы запустите test_1, он будет работать без проблем. Но после этого кодовое имя «Sheet2» недействительно. И если вы закрываете и открываете книгу, вы поймете, что я имею в виду. Excel создает новый лист с тем же именем (но другое CodeName). Любые данные, хранящиеся в ячейках листа, не теряются. Старое имя_кода ссылается на объект рабочей книги.
Я не нашел способ восстановить или удалить старые ссылки до сих пор (другой тогда переместить все объекты в новой книге). Я использую Excel 2013.
Решение, конечно, не так лишено рабочего листа, но есть ли у кого-нибудь идеи, как восстановить?
Есть ли у вас другая книга Excel? Они будут отображаться в одном редакторе кода. –
@roryap Да, да. И несколько глобальных шаблонов. Но я тестировал этот пример выше и на «пустом» экземпляре excel. Оба показывают то же самое. – Jzz
Как только просто удалить лист в то же время, используя: 'Application.DisplayAlerts = False sh.Delete Application.DisplayAlerts = True' – Luuklag