我已经远近搜索了这个问题的答案,这就是我想出来的,但我一直得到一个编译错误:需要对象。所以这就是我得到的:
Dim strName As String
Set wbk = "C:\Users\I53014\Desktop\Import_Creator.xlsm"
strName = wbk.Sheet1.Range("B2")
ActiveWorkbook.SaveAs strName
我需要获取“Import_Creator.xlsm”sheet1单元格b2中的文本并使用它来保存另一个工作簿作为该名称吗?
答案 0 :(得分:2)
假设wbk是一个Workbook对象,
Set wbk = Workbooks.Open("C:\Users\I53014\Desktop\Import_Creator.xlsm")
目前您正在尝试将此对象设置为字符串。
这本书也必须打开(即使是暂时的),因为Workbooks
集合仅涉及打开的工作簿。
如果可能,请在另一个工作簿中使用引用B2的链接公式,这样可以节省您打开和关闭它的时间。
已添加如果工作簿已打开,则可以使用
Set wbk = Workbooks("Import_Creator.xlsm")
如果本书包含当前正在运行的代码 ,那么:
Set wbk = ThisWorkbook
只是出于兴趣(对于阅读的任何人),可以从工作簿中获取值而无需打开和关闭它:
Range("A1").Formula = "='F:\Documents and Settings\student\My Documents\[AndysData7.xlsx]Staff List'!$D$6"
MsgBox Range("A1").Value
Range("A1").Clear
甚至可以在不使用单元格输入公式的情况下获取此值:
Debug.Print ExecuteExcel4Macro("'F:\Documents and Settings\student\My Documents\[AndysData7.xlsx]Staff List'!R6C4")
(感谢我的一位同事汉斯)