我正在尝试编写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'。
答案 0 :(得分: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
希望这会有所帮助。
答案 1 :(得分:0)
对不起,我忘记将“文件名”更改为“ fName1”。 代码工作正常,只是一个错字。