簡體   English   中英

VBA將范圍保存為工作簿

[英]VBA Save Range as Workbook

我試圖將范圍保存為單獨的工作簿。 我要保存的范圍是Sheet(STF)和Range(B1到J lastrow)我的代碼是:

saveFile = Application.GetSaveAsFilename(InitialFileName:=address & " " & Format(Now(), "yyyy-MM-dd hh-mm-ss"), fileFilter:="Excel Workbooks (*.xlsx),*.xlsx")
Worksheets("STF").Range("B1:J" & LR).SaveAs Filename:=saveFile

然而,顯然,並非如此簡單。 它失敗了,我不知道如何解決這個問題?

救命?

將工作表復制到任何位置。 這將創建一個包含工作表的新工作簿(新活動)。

Option Explicit

Sub extractRange()
    Dim saveFile As String, Address As String

    Address = "ABC"

    saveFile = Application.GetSaveAsFilename(InitialFileName:=Address & " " & Format(Now, "yyyy-MM-dd hh-mm-ss"), _
                                             fileFilter:="Excel Workbooks (*.xlsx),*.xlsx")
    ThisWorkbook.Worksheets("STF").Copy

    With ActiveWorkbook
        With .Worksheets("STF")
            .Columns("K:XFD").EntireColumn.Delete
            .Columns("A").EntireColumn.Delete
        End With
        .SaveAs Filename:=saveFile, FileFormat:=xlOpenXMLWorkbook
        .Close savechanges:=False
    End With
End Sub

創建工作簿,將所需范圍復制/粘貼到新工作簿,然后保存並關閉:

saveFile = Application.GetSaveAsFilename(InitialFileName:=Address & " " & Format(Now(), "yyyy-MM-dd hh-mm-ss"), fileFilter:="Excel Workbooks (*.xlsx),*.xlsx")
If Not saveFile = "False" Then
    With Workbooks.Add
        ThisWorkbook.Worksheets("STF").Range("B1:J" & LR).Copy .Sheets(1).Range("B1")
        .SaveAs saveFile
        .Close
    End With
End If

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM