【问题标题】:Loop to check when workbook close循环检查工作簿何时关闭
【发布时间】:2018-01-05 09:05:30
【问题描述】:

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

我知道我必须更改 Private Sub Worksheet_Change(ByVal Target As Range) 中的某些内容,但如果我这样做了,那么代码将无法正常工作。要使代码工作,它必须是 Worksheet_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

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    Project Explorer (Ctrl-R) 中双击 ThisWorkbook,然后从编辑器窗口将第一个下拉菜单从 (General) 切换到 Workbook。然后第二个下拉菜单提供对工作簿级别事件的访问。

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


    BeforeClose 没有为您提供 Target 参数,因为它与关闭无关。

    【讨论】:

    • 超级。必须赞赏!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-11
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    相关资源
    最近更新 更多