빈 셀을 확인하기 전 마지막 단계로 확인에 사용할 범위를 만듭니다. 이 범위는 일부 고정 된 세트를 기반으로하며 세트가 어떻게 결합되는지는 가변적입니다. 모든 application.unions는 마지막을 제외하고 잘 작동합니다. 모든 변수를 모듈에 전역 적으로 정의했고 하위 특정 변수를 가져 와서 내 하위에서만 정의하려고했습니다. 비어있을 수 있기 때문에 완성되지 않은 세트 하나를 제거했습니다. 여전히 잘못된 절차 오류가 발생합니다.
공용 변수는 Module1에 있습니다. 사용되는 범위를 정의하는 통합 문서 열기에서 실행되는 하위가 있습니다. 저장하기 전에 실행중인 하위는 다음과 같습니다.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Drive As Range
Dim Stage As Range
Dim Required As Range
'Create the final range of cells for checking
If Module1.DriveChk = "G" Then
Set Drive = Module1.Engine
ElseIf Module1.DriveChk = "E" Then
Set Drive = Module1.Motor
End If
If Module1.StageChk = 1 Then
Set Stage = Module1.Stage1
End If
If Module1.StageChk = 2 Then
Set Stage = Application.Union(Module1.Stage1, Module1.Stage2)
End If
If Module1.StageChk = 3 Then
Set Stage = Application.Union(Module1.Stage1, Module1.Stage2, Module1.Stage3)
End If
Set Required = Application.Union(Module1.Fixed, Drive)
'Check if all required cells are filled in
If WorksheetFunction.CountA(Required) < Required.Count Then
Cancel = True
MsgBox "Please Completed Shaded Cells!", vbOK + vbExclamation, "SAVE CANCELLED"
End If
'Set the report date before saving
Range("AG60") = Format(Now(), "mm-dd-yyyy hh:mm:ss AM/PM")
'Old code probably to ensure saving macro enabled that is currently commented out
' Dim sFN As String
' If SaveAsUI Then
' Cancel = True
' sFN = Application.GetSaveAsFilename(, _
' fileFilter:="Excel Macro-Enabled Workbooks (*.xlsm),*.xlsm")
' Debug.Print sFN
' If sFN <> "False" Then _
' ThisWorkbook.SaveAs sFN, xlOpenXMLWorkbookMacroEnabled
'End If
End Sub
Set Required = Application.Union (Module1.Fixed, Drive)에서 오류가 발생합니다.
필요한 경우 다른 코드를 게시 할 수 있습니다.
항상 Application.Union에 오류가 발생하는 "아무것도"인 범위를 통합하려고했습니다.
다음 코드 추가 :
Debug.Print Module1.Fixed.Address, Module1.Fixed.Parent.Name
Debug.Print Drive.Address, Drive.Parent.Name
문제를 해결하고 무슨 일이 일어나고 있는지 확인하는 데 도움이되었습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다