在另一个工作簿中调用宏

时间:2012-03-16 19:35:32

标签: excel vba excel-vba

我有一个有点复杂的宏观情况,所以我会尽我所能来解决它​​。它涉及3个不同工作簿文件之间的交互:

  • 第一个包含通用数据分析和格式化宏
  • 第二个包含参数,格式信息和更具体的宏来分析那种数据
  • 包含要格式化的实际数据本身的第三个文件

我想象的工作流程如下:加载通用工作表,选择数据和参数文件,运行通用宏以应用一些基本格式。然后,将从参数文件运行具有特定名称和arg列表的公共宏(例如Sub SpecialFormatting(wbk As Workbook)),以对不属于通用表的数据文件执行更具体的格式化。

如何指定运行宏的工作簿?我想我在某处读过Application.Run,但我认为只能通过args ByVal。我需要传递工作簿ByRef才能编辑它。

我想在这种特定情况下,我可以传递一个带有数据手册名称的字符串,但还有其他选择吗?

1 个答案:

答案 0 :(得分:0)

不是Excel和VB的最大粉丝,过去被迫使用它。我不得不尽我所能编写Excel宏来自动化我手动无兴趣的东西。我不久前想出来将工作簿导出为单独的文件:

Set wbSource = ActiveWorkbook

wrkshtYear = Mid(wbSource.FullName, Len(wbSource.FullName) - 7, 4)

For Each sht In wbSource.Worksheets
    If sht.Name <> "Totals" Then
        newFileName = Replace((strSavePath & "\" & UserNameWindows() & sht.Name & wrkshtYear), " ", "")
        If isFileExist(newFileName & ".xlsx") = False Then
            sht.Copy
            Set wbDest = ActiveWorkbook
            wbDest.SaveAs newFileName
            wbDest.Close 'Remove this if you don't want each book closed after saving.
        End If
    End If
Next

也许这会帮助你入门。古德勒克!