Я ищу решение VBA для одновременного выполнения задач, таких как переименование активного файла, выбор папки для сохранения переименованного файла и удаление старой версии файла. Диалог "Сохранить как" допускает первые две части этого требования, но не удаляет ex. файл.
Хорошее решение этой проблемы опубликовал Оливер Зальцбург, который также является участником этого форума и размещен здесь. Однако этот код работает только для Microsoft Word. Я пытался использовать Microsoft Excel с небольшими изменениями (ActiveDocument для ActiveWorkbook), предназначенными для Excel, но все еще не работает в Excel. Код Оливера Зальцбурга VBA с незначительными изменениями приведен ниже
Sub MacroXL()
' Store original name
Dim sOriginalName As String
sOriginalName = ActiveWorkbook.FullName
' Save As
Dim sFilename As String, fDialog As FileDialog, ret As Long
Set fDialog = Application.FileDialog(msoFileDialogSaveAs)
ret = fDialog.Show
If ret <> 0 Then
sFilename = fDialog.SelectedItems(1)
Else
Exit Sub
End If
Set fDialog = Nothing
' Don't replace the original file
If sFilename = sOriginalName Then Exit Sub
ActiveWorkbook.SaveAs2 Filename:=sFilename, FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False, CompatibilityMode:=14
' Delete original
Kill sOriginalName
End Sub
При отладке ошибка отображается как прикрепленная:
В этом месте:
ActiveWorkbook.SaveAs Filename:=sFilename, FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False, CompatibilityMode:=14
Надеюсь, что @Oliver Salzburg или кто-то с навыками VBA сможет решить вышеуказанную небольшую проблему. Заранее спасибо.