需要帮助来创建If else语句。如果对所有字段9求和=对所有字段10求和,则删除字段10,否则在整个列中突出显示字段10。 注意:字段9是“ I”列,字段10是“ J”列
Sub Macro1()
ActiveSheet.Range("A1").AutoFilter field:=9, Criteria1:="<>"
ActiveSheet.Range("A1").AutoFilter field:=10, Criteria1:="<>"
'IF Formula
IF Activesheet.Range ("I") = Activesheet.Range ("J"),
Columns("J:J").Select
Selection.Delete Shift:=xlToLeft
Else
Do nothing
'If Formula ends
End Sub
答案 0 :(得分:1)
您的代码中有一些错误:
IF的基础:
您需要写
If *Condition* Then
*Do smth*
Else
*Do Smth*
End If
如果您什么都不做,可以带走Else。
过滤器总和:
正如骚扰爸爸在评论中写道: 条件应这样写:
Application.worksheetfunction.sum("I:I") = Application.worksheetfunction.sum("J:J")
请勿使用Select:
使用select会使您的代码变慢且难以阅读。要优化的第一件事是避免使用select。在此链接中,您将找到避免使用Select的好答案: How to avoid using Select in Excel VBA
最后,您的代码应如下所示:
Sub Macro1()
ActiveSheet.Range("A1").AutoFilter field:=9, Criteria1:="<>"
ActiveSheet.Range("A1").AutoFilter field:=10, Criteria1:="<>"
'IF Formula
IF Application.worksheetfunction.sum(Range("I:I").SpecialCells(xlCellTypeVisible)) = _
Application.worksheetfunction.sum(Range("J:J").SpecialCells(xlCellTypeVisible)) Then
Columns("J:J").Delete Shift:=xlToLeft 'instead of .Select and Selection.
End If
'If Formula ends
End Sub