excel - VBA将当前工作表复制到新工作簿并保存
问题描述
尽管我对我的 VBA 非常生疏,但我之前已经多次将工作表保存到新的工作簿中。此代码失败,错误代码“对象'_Workbook'的方法'SaveAs'失败”
wbSource.Sheets(newFileName).Copy
On Error GoTo NewWorkbookError:
Set wbCleaned = ActiveWorkbook
ChDir ProcessedFileStoragePath
wbCleaned.SaveAs filename:=newFilePath, _
FileFormat:=FileStoredAsFormat, CreateBackup:=False
在没有 ChDir 行的情况下失败,我添加了该行,因为在录制用于保存新工作簿的宏时,该代码行在录制中。
我注意到的另一件事是 .SaveAs 方法中的“文件名”大小写,它应该是 Filename: 但是当我以这种方式键入它时,编辑器会小写它。我在这个名为 filename 的模块中没有任何其他变量。
Const ProcessedFileStoragePath As String = "C:\Users\TD\OneDrive\DataLoaders\FilesForAzureStorage\"
Const FileStoredAsFormat As String = "xlCSVUTF8"
任何帮助表示赞赏,我已经在这方面花费了太多时间。
解决方案
今天早上我在自己的代码中遇到了完全相同的问题。ActiveWorkbook 出于某种原因没有产生对象并保持为空。我通过手动指定工作簿来解决这个问题。
尝试这个:
wkb.Worksheets(newFileName).Copy
Excel.Workbooks(2).SaveAs newFilePath
解决方案: OPs 问题的解决方案是文件格式枚举。它必须是变体变量类型(根据 OP 的评论)。
如果有帮助,我会将我的建议留给其他人。
推荐阅读
- java - 在我的视图中响应我的 getAdapter() 方法中的 IFindReplaceTarget
- notepad++ - 从一行中查找文件路径并使用记事本++插入下一行
- android - 工具栏中的进度条不占用整个宽度
- c# - 如何通过 ODBC 连接 Sage 200 数据库进行连接和查询?
- python - Python 2.7 返回值和添加函数
- otrs - 如何在 otrs 6 中创建示例模块 helloWorld
- javascript - 有没有办法将方法添加到众多对象的原型中
- apache-spark - 在 pyspark 数据框中旋转列和分组的有效方法
- crystal-lang - 是否可以获得当前进程所有者的uid?
- javascript - json 字符串化数组的预期外观?