Я создал файл и сослался на него как GlobalFile
.
Затем я сохранил его как «Glo», а затем как «Ume».Затем я снова открываю сохраненные файлы, чтобы открыть две разные рабочие книги под двумя разными именами в двух разных объектах рабочей книги: GlobalFile
и NightMareFile
.
. После открытия окна Excel имеют правильные заголовки как «Glo.xls»."и" Ume.xls "соответственно, но тестирование NightMareFile.Name
приводит к" Glo.xlsx "!!!
Как это вообще возможно?
Я нахожусьWin 10 64 бит, Excel 365 16 бит.
Уже пробовал:
- DoEvents до или после открытия
- RefreshAll после открытия
- перезапуск Excelне принес никаких изменений.
Что заставляет меня дергать себя за волосы: изменение порядка двух открытых блоков исправляет конфликт имен: если «Ume» открывается первым, оно имеет правильное имя, как и «Glo».Msgstr ".
Изначально у меня было сохранено и открыто несколько именованных версий файлов, но только эта всегда была неисправна, отсюда и новое имя: NightMareFile.Независимо от того, как я изменил порядок открытия файлов, этот всегда наследовал имя файла, открытого перед ним, в другую переменную объекта.
Option Explicit
Sub main_control_routine()
Dim GlobalFile As Workbook
Dim NightMareFile As Workbook
Set GlobalFile = Workbooks.Add
Debug.Print "GlobalFile.Name: " & GlobalFile.Name
Application.DisplayAlerts = False
GlobalFile.SaveAs Filename:="Glo"
Debug.Print "GLOBAL File ready!"
'GlobalFile save as Ume
GlobalFile.SaveAs Filename:="Ume"
Debug.Print "GlobalFile.Name: As Ume " & GlobalFile.Name
Application.DisplayAlerts = True
'GLOBAL reopened to GlobalFile
Set GlobalFile = Workbooks.Open("Glo", False)
Debug.Print "GlobalFile.Name: " & GlobalFile.Name
'Ume reopened to NightMareFile
Set NightMareFile = Workbooks.Open("Ume", False)
Debug.Print "NightMareFile.Name: " & NightMareFile.Name
End Sub