【问题标题】:Excel VBA - Run macro before saveExcel VBA - 保存前运行宏
【发布时间】:2012-09-11 08:11:53
【问题描述】:

在保存文档之前,我一直在寻找如何调用我的宏。我找到了这个,但是当我将代码放入其中时,它什么也没做。所以我想我错过了什么。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 

Set shtVO = Sheets("Voice orders")
endRowVO = shtVO.Range("E" & Rows.Count).End(xlUp).Row

For Row = 11 To endRowVO
    If IsEmpty(shtVO.Cells(Row, 23).Value) = False Then
        If shtVO.Cells(Row, 3).Value <> shtVO.Cells(Row, 23) Then
            If shtVO.Cells(Row, 1).Value Like "*MIG*" Then
            Else
                shtVO.Cells(Row, 1).Value = shtVO.Cells(Row, 1).Value + "MIG"
            End If
        End If
    End If
Next Row

End Sub 

【问题讨论】:

  • 你把这段代码放在ThisWorkbook模块里了吗?
  • 在什么?对不起,这是全新的。
  • 什么不起作用?保存前你想做什么?
  • 在保存之前我刚刚调用了宏。但我将在共享的 .xlsm 文件上使用它,因为并非所有用户都知道如何使用我想以这种方式“自动化”它。我们确保每个人在他们编辑的每一行后都保存,因此宏被调用。

标签: excel vba


【解决方案1】:

将您的代码放在ThisWorkbook 模块中

【讨论】:

  • 您的 Workbook_BeforeSave 事件在您处于设计模式时也可能不会执行,因此请务必在保存工作簿之前退出设计模式。