【问题标题】:Save a specific sheet as individual xls file with vba使用 vba 将特定工作表另存为单个 xls 文件
【发布时间】:2019-09-30 02:24:36
【问题描述】:

我正在尝试编写 vba 代码以将特定工作表另存为另一个工作簿文件。我希望用户能够命名工作簿文件和路径。

我尝试了不同的方法,但都没有奏效。

如果不可能,我可以只保存到这个位置:

"Q:\Sorular\" 具体文件名以代码显示。

Sub Soru_Publish()

Dim fName1 As String
fName1 = Worksheets("Storyboard").Range("E3").Value & "_" & Worksheets("Storyboard").Range("E2").Value

Worksheets("Soru_Publish").Visible = True
Worksheets("Soru_Publish_2").Visible = True
Worksheets("Soru_Publish").Activate

    Dim FirstBlankCell As Long, rngFound As Range

    With Sheets("Soru_Publish")
        Set rngFound = .Columns("A:A").Find("*", After:=.Range("A1"), _
            searchdirection:=xlPrevious, LookIn:=xlValues)
        If Not rngFound Is Nothing Then FirstBlankCell = rngFound.Row
    End With

Worksheets("Soru_Publish").Range("A1:Y" & FirstBlankCell & "").Copy
Worksheets("Soru_Publish_2").Range("A1:Y" & FirstBlankCell & "").PasteSpecial Paste:=xlPasteValues

Worksheets("Soru_Publish_2").Copy

With ActiveWorkbook
    .SaveAs filename:="Q:\Sorular\" & filename
    .Close
End With

Worksheets("Sorular").Activate
Worksheets("Sorular").Range("B4").Select

Worksheets("Soru_Publish").Visible = False
Worksheets("Soru_Publish_2").Visible = False

End Sub

不幸的是,当我运行宏时,我在 SaveAs 行收到运行时错误“1004”。

【问题讨论】:

    标签: excel vba xls


    【解决方案1】:

    您的代码有效,但使用 ActiveWorkbook 可能会给您意外结果

    如果要将单个工作表另存为新的.xls 文件,只需在需要保存的工作表上直接使用.SaveAs,如下所示:

    Dim wrkSheet As Worksheet
    Set wrkSheet = Worksheets("Soru_Publish_2")
    wrkSheet.SaveAs Filename:="Q:\Sorular\" & fName1
    

    如果你不想定义一个新变量,或者像这样:

    Worksheets("Soru_Publish_2").SaveAs Filename:="Q:\Sorular\" & fName1
    

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      抱歉,我忘记将“文件名”更改为“fName1”。 代码运行良好,只是一个错字。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-13
        • 1970-01-01
        • 2014-03-13
        • 2016-02-26
        相关资源
        最近更新 更多