Я создал макрос в Excel ниже для работы связанной формы, которая должна скрывать вкладки, скопировать файл на рабочий стол как xlsx, затем снова открыть исходный xlsm, показать вкладки и очистить форму. Моя проблема в том, что он открывает вторую копию Xlsm и помещает ее также на рабочий стол. Это работало в течение месяца отлично, эфир, я что-то испортил или кто-то еще сделал. Есть ли что-нибудь, что вы можете увидеть в сценарии ниже. Спасибо

Sub SaveAs()                ATW spreadsheet
‘SaveAs
‘Hide Tabs– add ATW -authority number then contractor company to file title Save file as XLSX to Desktop. Reopen XLSM, and unhide tabs.
Application.DisplayAlerts = False       ‘ 
    Sheets(Array("Contractor info", "PTW", "DataBase")).Select
    Sheets("DataBase").Activate
    ActiveWindow.SelectedSheets.Visible = False
        ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\U0154179\Desktop\ATW " & ActiveSheet.Range("B21").Value & "-" & ActiveSheet.Range("I3").Value & ".xlsx", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
        ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\U0154179\Desktop\ATW Template.xlsm", _
            FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    Sheets("ATW").Select
    Sheets("Contractor info").Visible = True
    Sheets("ATW").Select
    Sheets("PTW").Visible = True
    Sheets("ATW").Select
    Sheets("DataBase").Visible = True
    Sheets("ATW").Select
    Application.DisplayAlerts = True

1 ответ1

0

Причина, по которой он сохраняет две копии на рабочий стол, заключается в том, что у вас есть оба вызова SaveAs, указывающие на рабочий стол.

Кроме того, вам почти никогда не нужно ничего выбирать для работы с ним.

Быстрая модификация вашего кода дает:

Sub SaveAs()
'SaveAs
'Hide Tabs– add ATW -authority number then contractor company to file title Save file as XLSX to Desktop. Reopen XLSM, and unhide tabs.
Dim OrignalFilename As String

Application.DisplayAlerts = False

Sheets(Array("Contractor info", "PTW", "DataBase")).Visible = xlSheetHidden

OriginalFileName = ActiveWorkbook.FullName

ActiveWorkbook.SaveAs _
    Filename:="C:\Users\U0154179\Desktop\ATW " & ActiveSheet.Range("B21").Value & "-" & ActiveSheet.Range("I3").Value & ".xlsx", _
    FileFormat:=xlOpenXMLWorkbook

Sheets("Contractor info").Visible = xlSheetVisible
Sheets("PTW").Visible = xlSheetVisible
Sheets("DataBase").Visible = xlSheetVisible

Sheets("ATW").Select

ActiveWorkbook.SaveAs _
    Filename:=OriginalFileName, _
    FileFormat:=xlOpenXMLWorkbookMacroEnabled

Application.DisplayAlerts = True

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .