这真的很好奇。让我试着解释发生了什么。我用word写了一个宏,它调用了一个excelfile的宏
Set excel = CreateObject("excel.application")
excel.Visible = True
excel.workbooks.Open FileName:=tablePath
IDcolumn = excel.Application.Run("main", generatedExelPath)
从单词宏中调用的“主”函数是“简单地”通过从被调用的 excel 文件中复制特定数据来生成新的 excel 文件。
所以我们得到了 1 个 word 和 2 个 excel 文档。必须将一些 excel1 表复制到 excel2。
因此我使用:
For i = 0 To UBound(copySheets)
Windows(srcWinName).Activate
Sheets(copySheets(i)).Activate
Set AcSh = ActiveSheet
Windows(destWinName).Activate
If copySheets(i) = "config" Then
AcSh.Copy Before:=Sheets(1)
Else
AcSh.Copy After:=ActiveSheet
End If
Next i
其中 copySheets 包含需要复制的工作表。但是复制命令会引发错误。诸如“无法从源复制到目标,因为目标的行和列比源文件少”之类的东西
Atm excel1 是一个文件,xlsm
因为它是一个xls
没有发生此错误的文件。我想知道添加 excel2 的这条线是否是问题
Workbooks.Add Template:="Workbook"
也许我应该使用另一个模板,但我不知道是哪个。
如果我创建一个空文件,请保存它,然后在不发生错误之前xlsm
使用 open this empty而不是命令。xlsm
希望可以有人帮帮我。
啊,我应该提到的一件事是:如果我从 word 宏运行上面的 excel 宏,则会发生错误,但是当我关闭 Word 并手动执行 excel 宏时它可以工作。
编辑:它有效
正如 Alain 所说,我刚刚更改了 excel 选项。这里是他的帖子。
哦,我知道为什么会这样。您必须更改默认的 excel 格式:Orb > Excel 选项 > |保存| > 以这种格式保存文件:“Excel 工作簿 (.xlsx)”。您当前的设置将是 Excel 97-2003 工作簿 (.xls)。– 阿兰 8 月 29 日 12:09