Я думаю, что Инафизигер решил вашу главную проблему, это должна быть ваниль Save
.
Поскольку мне было неясно, что именно вы делаете (то есть Visual Studio / VB / BA), тогда
Вкл (1)
Я подумал, что стоит уточнить, что вы можете использовать код внутри модуля ThisWorkbook
для обнаружения и обработки SaveAs
, если вы предоставляете пользователям выбор. Это событие обнаруживает SaveAs
и отменяет его
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then
MsgBox "You cannot use SaveAs to save this file", , "Save Cancelled!"
Cancel = True
End If
End Sub
Этот код может быть программно добавлен в вашу целевую рабочую книгу, но я сомневаюсь, что вам придется прибегнуть к этому, поскольку вы сможете запустить простой Save
.
Вкл (3)
Вам необходимо использовать Раннее связывание , чтобы получить выгоду intellisense
. В настоящее время вы используете позднюю привязку с oExcel = CreateObject("Excel.Application")
. Обычно используемый подход состоит в том, чтобы написать код и заставить его работать с ранним связыванием, а затем преобразовать его в позднее связывание для окончательной публикации кода.
Условная компиляция (см. Комментарий внизу) может использоваться для переключения между двумя методами привязки в одном и том же коде.