Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA将范围另存为工作簿_Vba_Excel - Fatal编程技术网

VBA将范围另存为工作簿

VBA将范围另存为工作簿,vba,excel,Vba,Excel,我正试图将一个范围保存为单独的工作簿。我要保存的范围在工作表(STF)中,范围(B1到J lastrow)我的代码是: saveFile = Application.GetSaveAsFilename(InitialFileName:=address & " " & Format(Now(), "yyyy-MM-dd hh-mm-ss"), fileFilter:="Excel Workbooks (*.xlsx),*.xlsx") Worksheets("STF").Range

我正试图将一个范围保存为单独的工作簿。我要保存的范围在工作表(STF)中,范围(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
然而,显然,事情并没有那么简单。它失败了,我不知道如何解决这个问题


帮助?

创建工作簿,将所需范围复制/粘贴到新工作簿,然后保存并关闭:

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

将工作表复制到任何位置。这将创建一个包含工作表的新工作簿(新活动)

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

将要保存的区域复制到新工作簿,然后保存该新工作簿。通常,答案可以归结为:如何手动执行?正如Foxfire所说,复制、粘贴、保存、关闭。如果你自己做的话,你会做什么。