【发布时间】: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
【问题讨论】: