我希望将一个输入框字符串分配给工作簿名称,以便将数据从一个工作表操作到下一个工作表。例如,当我生成报告时,会为其分配一个临时文件名" tmp1" " TMP2"我想使用另一个excel表作为一个程序,它将运行一个宏,以便对新生成的文件进行排序,复制等,只需要输入临时文件的名称" tmp1&#34 ;等
我可以运行我需要的宏,并且熟悉' With'允许我这样做的陈述。我的问题是当我运行以下代码时:
Sub MyMacro()
Dim wb As Workbook
Dim X As String
X = InputBox("Set work book name")
Set wb = Workbooks(X)
With Workbooks(x)
.'code is entered here'
End with
End sub
我遇到了一个对象错误。我似乎错误地引用了新文件。任何帮助将不胜感激
由于
答案 0 :(得分:0)
如果您尝试创建新的临时工作簿并为其指定文件名,请尝试:
Sub MyMacro()
Dim X As String
X = InputBox("Set work book name")
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="C:\Users\garys\Desktop\" & X & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
With ActiveWorkbook
'code is entered here'
End With
End Sub
(当然,您将使用自己的文件夹名称和文件类型)
修改#1: 特别是在你的代码中,尝试替换:
With Workbooks(x)
使用:
With Workbooks(x & ".xlsx")
或
With Workbooks(x & ".xlsm")
修改#2:
如果您保存为文字,请尝试:
ActiveWorkbook.SaveAs Filename:="C:\Users\garys\Desktop\" & x & ".txt", FileFormat:=xlText, CreateBackup:=False
并参考:
With Workbooks(x & ".txt")