基本上,我有一个包含大量形状和数据的Visio文件。我尝试在新的Excel文件中创建形状报告,然后让excel文件以编程方式将导出的数据转换为数据透视表。
我在Visio中运行了一个宏,它已经生成了包含普通表格形式数据的excel文件。我希望能够在Visio中运行一个宏来激活导出数据的excel窗口并运行宏来使其成为数据透视表。但是,我放入我的visio宏模块的任何excel宏代码都无法识别(例如" Range"),大概是因为它们不是Visio识别的单词。
我的问题是:如何运行一个改变Visio模块的Excel文件的宏?
我知道如何在Visio的Excel文件中调用宏(Excel.run" ModuleNAME"),但这需要宏已经在Excel中。由于我在获取形状报告时创建了新的Excel文件,因此这些文件中没有任何宏。
另一种解决方案是,如果我能够将Visio中的形状数据报告作为新工作表导出到已包含宏的EXISTING Excel文件中,但我不知道如何执行此操作... (将形状报告从Visio导出到现有Excel文件)
生成Excel报告的代码:
Sub Excel2()
Visio.Application.Addons("VisRpt").Run
("/rptDefName=ReportDefinition_2.vrd/rptOutput=EXCEL")
End Sub
我想在运行Excel2()
后运行此宏Sub NewMacro()
AppActivate "Microsoft Excel"
Dim AppExcel As Excel.Application
Set AppExcel = CreateObject("Excel.Application")
'Do all sorts of fancy stuff with making pivot tables
'Do all sorts of fancy stuff with making pivot tables
End Sub
答案 0 :(得分:0)
您可以使用Get / CreateObject函数从Visio中使用Excel应用程序实例。
看一下这篇文章:
http://msdn.microsoft.com/en-us/library/gg251785.aspx
你可能也觉得这很有用:
http://support.microsoft.com/kb/309603
...它描述了相反的方向(即从另一个应用程序控制Visio),但在你的情况下,你会做类似的事情:
Dim AppExcel As Excel.Application
On Error Resume Next
Set AppExcel = GetObject(, "excel.application")
If AppExcel Is Nothing Then
Set AppExcel = CreateObject("excel.application")
End If
希望有所帮助。