Nhân đôi trên bảng tính


0

Tôi đã tạo một macro trong excel bên dưới để xử lý một biểu mẫu liên quan có nhiệm vụ ẩn các tab, sao chép tệp vào màn hình dưới dạng xlsx, sau đó mở lại xlsm gốc, bỏ ẩn các tab sau đó xóa biểu mẫu. Vấn đề của tôi là nó mở một bản sao Xlsm thứ hai và cũng đặt nó trên máy tính để bàn. Nó đã hoạt động được một tháng một cách hoàn hảo, ether tôi đã làm hỏng một cái gì đó hoặc người khác đã làm. Có bất cứ điều gì mà bạn có thể nhìn thấy trong kịch bản dưới đây. Cảm ơn bạn

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

Câu trả lời:


0

Lý do nó lưu hai bản sao vào máy tính để bàn của bạn là vì bạn có cả các cuộc gọi SaveAs chỉ vào máy tính để bàn.

Ngoài ra, bạn hầu như không bao giờ cần phải chọn bất cứ điều gì để làm việc với nó.

Một sửa đổi nhanh chóng mang lại mã của bạn mang lại:

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

Tôi thực sự có 3 Macros mà tôi đang chạy và ClrFrm là cái cuối cùng. Tuy nhiên tôi đã sao chép và dán bản sửa đổi của bạn và;
ScottV

Tôi thực sự có 3 Macros mà tôi đang chạy và ClrFrm là cái cuối cùng. Tuy nhiên tôi đã sao chép và dán bản sửa đổi của bạn và; 1. Nó sẽ không chạy với mảng trang tính để nó quay trở lại chọn các tab riêng lẻ và bỏ ẩn chúng và tiếp tục hoạt động tốt. Trên thực tế tất cả đều hoạt động tốt ngoại trừ tôi không thể mở tệp .xlsx đã lưu. Nó đòi hỏi tôi phải thay đổi nó thành a. tập tin xls với một cửa sổ bật lên cảnh báo trước.
ScottV

Nó không nhận ra phần mở rộng tập tin, là lý do tại sao tôi phải thay đổi nó thành xls.
ScottV

Xin lỗi, SaveCopyAs giữ lại định dạng của tệp gốc. Tôi đã cập nhật mã để phản ánh phần mở rộng .xlsm.
Nayrb

Tôi hiểu những gì bạn đang cố gắng thực hiện nhưng bằng cách sao chép dưới dạng Xlsm sẽ không hoạt động vì tôi cần nó là xlsx. Điều này là do vấn đề vĩ mô. Công ty không muốn nhiều macro trôi nổi trong mạng của họ.
ScottV
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.