2022/06/24

利用VBA巨集複製區域,選擇性貼上值後指定位置另存新檔 檔名也自訂

先決條件是要會錄製巨集動作,

如果今天想要用巨集複製內容後

自動另外開新檔案,貼上值,存在指定的位置,檔名也是自訂,

實現可以一鍵輸出所需檔案的功能

你可以參考下面這個巨集

不過我會建議你利用錄製的功能,
先完成複製,開新檔案,選擇性貼上值, 存檔關閉,然後關掉錄製,
去打開你完成的巨集內容
再來跟我這個檔案比較一下,把原本絕對值指定位置跟檔名的部分,
改成我底下宣告的方式,達成在檔案裡面可以自由編輯存檔路徑與檔名的需求


我是複製B:D這個範圍

然後存檔的路徑去抓工作表!A1

舉例來說要存D槽,這個地方我的值 就會是「D:\」

檔名抓工作表!A2加上日期

所以我的檔名會是「設定的檔名_202209121559」

你也可以把&之後的的日期拿掉

然後我同時還指定了新檔案的工作表名稱為 EmployeeData

這是因為我需要產出一個固定匯入系統的EXCEL檔所需


需要特別修改的部分 我都用顏色標記起來了

您可以參考看看

 

Sub 巨集1()
'
' 巨集1'
'

iPath$ = CStr([工作表!A1])  '指定路徑宣告

NewName$ = CStr([工作表!A2]) & Format(Now, "_yyyymmddhhmmss") '檔名宣告


    Columns("B:D").Select '選取B:D
    Application.CutCopyMode = False
    Selection.Copy
    Workbooks.Add

    Sheets("工作表1").Select '選擇新檔案的工作表1
    Sheets("工作表1").Name = "EmployeeData" '變更工作表名稱


    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    ActiveWorkbook.SaveAs Filename:=iPath & NewName, FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWindow.Close
End Sub

沒有留言:

張貼留言