返回列表 上一主題 發帖

另存新檔後清除公式&巨集

回復 1# yc1031
另存 "Report" 工作表
  1. Sub Test()
  2.   Dim wbNew As Workbook
  3.   Set wbNew = Workbooks.Add
  4.   
  5.   ThisWorkbook.Sheets("Report").Copy Before:=wbNew.Sheets(1)
  6.   With wbNew.Sheets(1)
  7.     .UsedRange.Value = .UsedRange.Value
  8.     .[Y20:AA20].Delete Shift:=xlShiftToLeft
  9.   End With
  10. End Sub
複製代碼
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

回復 3# yc1031
  1. Sub Test()
  2.   Dim wbNew As Workbook, name As String
  3.   Set wbNew = Workbooks.Add
  4.   
  5.   ThisWorkbook.Sheets("Report").Copy Before:=wbNew.Sheets(1)
  6.   With wbNew.Sheets(1)
  7.     .UsedRange.Value = .UsedRange.Value
  8.     name = .[Z20]
  9.     .[Y20:AA20].Delete Shift:=xlShiftToLeft
  10.     .SaveAs ThisWorkbook.Path & Application.PathSeparator & name
  11.   End With
  12. End Sub
複製代碼
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

回復 6# yc1031
  1. Sub AddFolder()
  2.   Dim folder As String
  3.   Dim wbNew As Workbook, name As String
  4.   
  5.   With ActiveSheet  '當前工作表
  6.     folder = ThisWorkbook.path & Application.PathSeparator & .Range("k12")  '存檔資料夾路徑
  7.     If Dir(folder, vbDirectory) = "" Then MkDir folder  '資料夾不存在則建立

  8.     Set wbNew = Workbooks.Add   '新增工作簿
  9.     .Copy Before:=wbNew.Sheets(1) '複製到新工作簿的最前面
  10.   End With
  11.   
  12.   With wbNew.Sheets(1)  '新工作簿第一個工作表
  13.     .UsedRange.Value = .UsedRange.Value   '使用到的範圍重新賦值(為了清除公式),或是 複製>貼上值
  14.     name = "SI -" & .[k12]  '檔案命名
  15.     .[P1:Q100].Delete Shift:=xlShiftToLeft  '刪除不必要欄位
  16.     .Shapes("Oval 35").Delete    '新的檔案移除這個呼叫巨集的圖案
  17.     .SaveAs folder & Application.PathSeparator & name  '另存新檔
  18.     .Parent.Close '新工作簿關閉
  19.   End With
  20.   MsgBox "已匯出!"
  21. End Sub
複製代碼
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

        靜思自在 : 盡多少本份,就得多少本事。
返回列表 上一主題