У меня есть макрос в модуле «ThisWorkbook», установленный для запуска «BeforeSave». Это хорошо работает, но у меня есть два других макроса, которые мне также нужны для запуска BeforeSave. Могу ли я добавить дополнительные макросы в этот модуль?
Я создал свои макросы в разделе «стандартный» модуль, и они хорошо работают при выборе кнопки «Выполнить». Я попытался добавить «Имена макросов / модулей» в конец моего макроса «BeforeSave», который ничего не сделал, но дал мне ошибки.
Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call HideRows
Call DivAdminApproval
Call ProjNumbrReq
End Sub
Public Sub HideRows()
'When a row begins with X in Travel Expense Codes worksheet, hide the row
Const beginRow As Long = 3
Const endRow As Long = 38
Const chkCol As Long = 14
Dim rowCnt As Long
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Travel Expense Codes")
For rowCnt = endRow To beginRow Step -1
With ws.Cells(rowCnt, chkCol)
.EntireRow.Hidden = (.Value = "X")
End With
Next rowCnt
End Sub
Public Sub ProjNumbrReq()
'Call ProjNumbrReq
With Worksheets("Travel Expense Voucher")
For Each myCell In .Range("U15:U45")
If myCell.Value > 0 And .Cells(myCell.row, "N") = "" Then
MsgBox "Project Number must be provided on each line where reimbursement is being claimed.", vbCritical, "Important:"
Cancel = True
Exit Sub
End If
Next myCell
End Sub
Public Sub DivAdminApproval()
'Call DivAdminApproval
With Worksheets("Travel Expense Voucher")
If Worksheets("Travel Expense Voucher").Cells("F5") = 2 Then
For Each myCell In .Range("O15:O45")
If myCell.Value = 0.58 Then
MsgBox "You have selected reimbursement at the 'HIGH' mileage rate ($.58/mile). To receive reimbursement at this rate, Division Administrator Approval is Required.", vbCritical, "Important:"
Exit Sub
End If
Next myCell
End Sub
Как вы можете видеть из моего кода, ProjNumbrReq иМакросы DivAdminApproval были перечислены до End Sub, надеясь, что это вызовет их работу. Однако они не работают. Я хотел бы, чтобы эти другие макросы также запускались «BeforeSave». Пожалуйста, помогите?