Solução VBA: Microsoft Excel / PowerPoint renomeia o arquivo ativo, escolha a pasta para salvar no local desejado e exclua a versão antiga

1

Eu estou procurando uma solução VBA para fazer tarefas simultâneas, como renomear o arquivo ativo, escolha a pasta onde salvar o arquivo renomeado e excluir a versão antiga do arquivo. O diálogo "Salvar como" permite as duas primeiras partes deste requisito, mas não exclui o ex. Arquivo.

Uma boa solução para esse problema foi publicada por Oliver Salzburg , que também é membro deste fórum e postou < href="https://superuser.com/questions/591143/how-to-simultaneously-rename-a-file-in-ms-office-and-delete-old-version"> aqui . No entanto esse código funciona apenas para o Microsoft Word eu tentei para o Microsoft excel com pouca modificação (ActiveDocument para ActiveWorkbook) destinado a excel mas ainda não funciona no Excel. O código VBA de Oliver Salzburg com pequenas modificações, como segue aqui

   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

Enquanto o erro de depuração é exibido como anexado:

Nestelocal:

ActiveWorkbook.SaveAsFilename:=sFilename,FileFormat:=_wdFormatXMLDocument,LockComments:=False,Password:="", AddToRecentFiles _
    :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
    :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
    SaveAsAOCELetter:=False, CompatibilityMode:=14

Espero que o @Oliver Salzburg ou alguém com habilidade VBA consiga resolver o menor problema acima. Agradeço antecipadamente.

    
por John Colins 11.05.2016 / 20:03

1 resposta

0

Neste:

ActiveWorkbook.SaveAs Filename:=sFilename, FileFormat:= _
    wdFormatXMLDocument, [etc etc etc]

wdFormatXMLDocument é uma constante do Word. É definido apenas no Word. Não sei sobre as outras constantes, mas tente gravar uma macro enquanto salva um arquivo do Excel com as opções desejadas.

Isso pode fazer o trabalho:

ActiveWorkbook.SaveAs Filename:=sFilename, _
    FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    
por 12.05.2016 / 05:11