需要使用单元格中的文本保存工作簿的VBA代码

我已经search了近,远的答案,这就是我想到的,但我不断收到一个编译错误:所需的对象。 所以这里是我得到的:

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中的文本并使用它来保存另一个工作簿作为该名称?

假设wbk是一个Workbook对象,

 Set wbk = Workbooks.Open("C:\Users\I53014\Desktop\Import_Creator.xlsm") 

目前您正试图将此对象设置为string。

这本书还必须打开(即使是暂时的),因为Workbooks集合只涉及打开的工作簿。

如果可能的话,在另一个工作簿中有一个指向B2的链接公式,这将使您不必打开和closures它。

添加如果工作簿是开放的,那么你可以使用

 Set wbk = Workbooks("Import_Creator.xlsm") 

如果本书包含当前正在运行的代码则:

 Set wbk = ThisWorkbook 

只是出于兴趣(对于任何人阅读),可以从工作簿获得一个值,而不必打开和closures它:

 Range("A1").Formula = "='F:\Documents and Settings\student\My Documents\[AndysData7.xlsx]Staff List'!$D$6" MsgBox Range("A1").Value Range("A1").Clear 

甚至可以在不使用单元格input公式的情况下得到该值:

 Debug.Print ExecuteExcel4Macro("'F:\Documents and Settings\student\My Documents\[AndysData7.xlsx]Staff List'!R6C4") 

(感谢我的一位同事汉斯)