Vba 工作簿关闭时要检查的循环

Vba 工作簿关闭时要检查的循环,vba,excel,Vba,Excel,下面的代码检查特定列,查看它们的行是否具有类似的值。如果是,则在第57列中汇总其值,如果总数小于100,则单元格变为红色。如何使此代码仅在您关闭工作簿时工作?我的意思是,我希望循环仅在人们关闭Excel文件时才起作用 我知道我必须在私有子工作表\u change(ByVal Target As Range)中更改某些内容,但是如果我这样做,那么代码将无法工作。要使代码正常工作,它必须是工作表\u Change。或者我可以在按钮下调用此代码? 祝你有愉快的一天 提前谢谢 Private Sub W

下面的代码检查特定列,查看它们的行是否具有类似的值。如果是,则在第57列中汇总其值,如果总数小于100,则单元格变为红色。如何使此代码仅在您关闭工作簿时工作?我的意思是,我希望循环仅在人们关闭Excel文件时才起作用

我知道我必须在私有子工作表\u change(ByVal Target As Range)中更改某些内容,但是如果我这样做,那么代码将无法工作。要使代码正常工作,它必须是工作表\u Change。或者我可以在按钮下调用此代码? 祝你有愉快的一天

提前谢谢

Private Sub Worksheet_Change(ByVal Target As Range)


Dim TestRow As Integer
Dim TestColumn As Integer
Dim Sum As Integer


TestRow = Target.row
TestColumn = Target.Column

    If (TestColumn = 57) Then


        If (TestRow > 5) Then
            Sum = 0
            EColumnValue = 0
            FColumnValue = 0
            IColumnValue = 0
            APColumnValue = 0
            AQColumnValue = 0

            For i = TestRow To 5 Step -1

                If (i = TestRow) Then

                    Sum = ThisWorkbook.Sheets("Close").Cells(TestRow, 57).Value
                    EColumnValue = ThisWorkbook.Sheets("Close").Cells(TestRow, 4).Value
                    FColumnValue = ThisWorkbook.Sheets("Close").Cells(TestRow, 5).Value
                    IColumnValue = ThisWorkbook.Sheets("Close").Cells(TestRow, 8).Value
                    APColumnValue = ThisWorkbook.Sheets("Close").Cells(TestRow, 36).Value
                    AQColumnValue = ThisWorkbook.Sheets("Close").Cells(TestRow, 37).Value
                Else

                    If (EColumnValue = ThisWorkbook.Sheets("Close").Cells(i, 4).Value) And (FColumnValue = ThisWorkbook.Sheets("Close").Cells(i, 5).Value) And (IColumnValue = ThisWorkbook.Sheets("Close").Cells(i, 8).Value) And (APColumnValue = ThisWorkbook.Sheets("Close").Cells(i, 36).Value) And (AQColumnValue = ThisWorkbook.Sheets("Close").Cells(i, 37).Value) Then
                        Sum = Sum + ThisWorkbook.Sheets("Close").Cells(i, 57).Value

                        If Sum < 100 Then

                           ThisWorkbook.Sheets("Close").Cells(TestRow, 57).Interior.Color = RGB(255, 0, 0)


           Else
                           ThisWorkbook.Sheets("Close").Cells(TestRow, 57).Interior.Color = RGB(255, 255, 255)

                            End If


                    End If
                End If
           Next

        End If
    End If
Private子工作表\u更改(ByVal目标作为范围)
将TestRow设置为整数
将TestColumn设置为整数
点心作为整数
TestRow=Target.row
TestColumn=Target.Column
如果(TestColumn=57),则
如果(TestRow>5),则
总和=0
EColumnValue=0
FColumnValue=0
IColumnValue=0
APColumnValue=0
AQColumnValue=0
对于i=TestRow至5步骤-1
如果(i=TestRow),则
Sum=ThisWorkbook.Sheets(“Close”).Cells(TestRow,57).Value
EColumnValue=ThisWorkbook.Sheets(“Close”).Cells(TestRow,4).Value
FColumnValue=ThisWorkbook.Sheets(“Close”).Cells(TestRow,5).Value
IColumnValue=ThisWorkbook.Sheets(“Close”).Cells(TestRow,8).Value
APColumnValue=ThisWorkbook.Sheets(“Close”).Cells(TestRow,36).Value
AQColumnValue=ThisWorkbook.Sheets(“Close”).Cells(TestRow,37).Value
其他的
如果(EColumnValue=ThisWorkbook.Sheets(“Close”).Cells(i,4.Value)和(FColumnValue=ThisWorkbook.Sheets(“Close”).Cells(i,5.Value)和(IColumnValue=ThisWorkbook.Sheets(“Close”).Cells(i,8.Value)和(APColumnValue=ThisWorkbook.Sheets(“Close”).Cells”(“Close”).Cells(i,36.Value)和(AQColumnValue=ThisWorkbook.Sheets(“Close”).Sheets”).Cells(“Close”)
Sum=Sum+ThisWorkbook.Sheets(“Close”).单元格(i,57).值
如果总和小于100,则
ThisWorkbook.Sheets(“Close”).Cells(TestRow,57).Interior.Color=RGB(255,0,0)
其他的
ThisWorkbook.Sheets(“Close”).Cells(TestRow,57).Interior.Color=RGB(255,255,255)
如果结束
如果结束
如果结束
下一个
如果结束
如果结束

项目资源管理器中(
Ctrl-R
)双击此工作簿,然后从编辑器窗口将第一个下拉列表从(常规)切换到工作簿。然后,第二个下拉列表提供对工作簿级事件的访问

从第二个下拉列表中选择
BeforeClose
以生成其过程存根。(您可以删除工作簿_Open的空默认存根。)



BeforeClose
不提供目标参数,因为它与关闭无关。

项目资源管理器中(
Ctrl-R
)双击此工作簿,然后从编辑器窗口将第一个下拉列表从(常规)切换到工作簿。然后,第二个下拉列表提供对工作簿级事件的访问

从第二个下拉列表中选择
BeforeClose
以生成其过程存根。(您可以删除工作簿_Open的空默认存根。)



BeforeClose
不提供目标参数,因为它与关闭无关。

Super。必须感谢!超级的。必须感谢!