从Word中的VBA创建和保存Excel文档

时间:2014-03-06 09:48:28

标签: vba word-vba

我希望能够在Word文档中运行一个宏来创建一个Excel文档,然后将该电子表格保存在共享文件夹中。

这是我到目前为止的代码:

Public Sub Monthly_Commission_Extract()

Dim objExcel
Dim objDoc
Dim objSelection
Dim SaveAs1 As String
SaveAs1 = ("\\stnlinasshd01\P403759\Month End\Monthly Commission Extract\1st Save")

Set objExcel = CreateObject("Excel.Application")
Set objDoc = objExcel.Workbooks.Add

objExcel.Visible = True

Set objSelection = objExcel.Selection

ActiveWorkbook.SaveAs FileName:=SaveAs1, FileFormat:=-4158, CreateBackup:=False
Application.DisplayAlerts = True

End Sub

代码给了我一个错误:

  

运行时错误'424':需要对象

在以下代码中:

ActiveWorkbook.SaveAs FileName:=SaveAs1, FileFormat:=xlText, CreateBackup:=False

请告知我如何解决这个问题。

3 个答案:

答案 0 :(得分:1)

objExcel.ActiveWorkbook.SaveAs 

不仅仅是

ActiveWorkbook.SaveAs 

“属于”Excel的任何内容都必须以objExcel应用程序参考为前缀。

答案 1 :(得分:0)

下面是一个简单直接的代码,用于创建一个新的 Excel 工作簿并将其保存到本地磁盘上的路径中。此 VBA 代码已在 MS Word 中进行了测试。

Private Sub CreateExcel()

Dim myExcel As Object
Dim myWb As Object

Set myExcel = CreateObject("Excel.Application")
Set myWb = myExcel.Workbooks.Add

Application.DisplayAlerts = False

myWb.SaveAs FileName:="D:\test\dump.xls"

Application.DisplayAlerts = True

myWb.Close False
Set myWb = Nothing
myExcel.Quit
Set myExcel = Nothing

End Sub

在您的情况下,以下内容会起作用,因为 'objDoc' 派生自 excel 对象引用。

objDoc.SaveAs FileName:=SaveAs1, FileFormat:=-4158, CreateBackup:=False

答案 2 :(得分:0)

哦,船长,是的,我的船长, 错误消息清楚地表明丢失了一个对象,我认为这一行 SaveAs1 = ("\stnlinasshd01\P403759\月末\月度佣金提取\第一次保存") 问题是你应该用一个 SET-Statement 来解决这个问题,通过以“SET”开始这一行,然后你就有了所需的对象。