【发布时间】:2019-02-28 00:41:34
【问题描述】:
我已经能够对我的文件进行硬编码,然后在同一个文件夹中另存为。但是,使用正确名称创建的新文件根本没有内容。我找到了如何在 SO 上的所有帮助下保存在当前目录中,但无法解决这个问题。 由于我对 VBA 很陌生,因此任何事情都会有所帮助!
Sheets.Select
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Paste
Application.CutCopyMode = False
Dim thisWb As Workbook, d As Integer
Set thisWb = ActiveWorkbook
Workbooks.Add
d = InStrRev(thisWb.FullName, ".")
'ActiveWorkbook.SaveAs Filename:=Left(thisWb.FullName, d - 1) & "-Prelims" & Mid(thisWb.FullName, d)
ActiveWorkbook.SaveCopyAs Filename:=Left(thisWb.FullName, d - 1) & "-Prelims" & Mid(thisWb.FullName, d)
ActiveWorkbook.Close savechanges:=False
End Sub
【问题讨论】:
-
Workbooks.Add- 在这里您正在创建一个新的(空工作簿),然后用新名称保存它。摆脱这条线。 -
您可能还想查看代码中的avoiding activate and select
-
一些需要考虑的事情:尽量避免使用
.Select或Activate或ActiveWorkbook之类的东西。你不需要这些。始终限定您的工作簿或工作表:Set thisWb = ThisWorkbook或Set thisWs = ThisWorkbook.Worksheets("Sheet1")。现在您可以使用thisWs引用任何范围(其中thisWs的类型为Worksheet)。你不需要Select或Activate -
@cybernetic.nomad:伟大的思想和所有这些 :)
-
感谢大家的帮助,我会仔细阅读您提到的信息!