我在一个工作表中有一堆数据,我正尝试根据几列中的值将这些数据保存到各个工作簿中。我正在采取的方法(不管是好是坏!)就是将相关的工作表(和宏)复制到一个新的工作簿中,用适当的名称保存它(假设是temp.xlsx
),然后通过删除不相关的行(称为deleteInfo
的函数)来清除该新工作簿中的数据。根据公司政策,这一切都必须在不更改原始工作簿的情况下完成。
我可以复制的东西没有问题,但我有严重的问题调用新的工作簿中的宏。
我试过了:
Application.Run "'temp.xlsx'!deleteInfo"
ActiveWorkbook.Application.Run deleteInfo
Application.Run ("'C:\user\.....\temp.xlsx'!deleteInfo")
但都没有奏效。
发布于 2015-06-02 01:39:26
对于这样的任务,您应该考虑创建一个包含VBA宏的Excel外接程序(文件扩展名.xla),同时保留包含数据宏的常规工作簿(扩展名.xls或.xlsx)。更多细节在微软在线文章:https://support.office.com/en-ca/article/Add-or-remove-add-ins-0af570c4-5cf3-4fa9-9b88-403625a0b460希望这能有所帮助。
发布于 2015-06-12 10:54:52
通过导出保存宏的模块,复制原始工作簿并将其导入到新工作簿中,解决了此问题。在前面的模块中,pathName被定义为原始文件文件夹的路径(pathName = ActiveWorkbook.Path)
Sub exportMacro(ByVal pathName As String)
'Export the macro to save as .bas file
On Error Resume Next
Kill pathName & "\Module6.bas" 'Delete previously exported file
On Error GoTo 0
ActiveWorkbook.VBProject.VBComponents("Module6").Export pathName & "\Module6.bas"
End Sub
Sub importMacro(ByVal pathName As String)
'import the macro to a new workbook
ActiveWorkbook.VBProject.VBComponents.Import pathName & "\Module6.bas"
End Sub
https://stackoverflow.com/questions/30585558
复制相似问题