0

这就是我想出的。我得到一个编译错误:

所需对象。

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

4

1 回答 1

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

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

于 2013-07-26T18:06:27.713 回答