需要VBA代码以在单元格中保存带有文本的工作簿

时间:2013-07-26 18:03:38

标签: excel vba excel-vba

我已经远近搜索了这个问题的答案,这就是我想出来的,但我一直得到一个编译错误:需要对象。所以这就是我得到的:

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

1 个答案:

答案 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")

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