Excel使用VBA标识多个标准

我在BA列上使用Excel文件中的以下COUNTFS函数:

=(COUNTIFS(E$2:E2;E2;$G$2:G2;G2;$I$2:I2;I2;$N$2:N2;N2;$O$2:O2;O2;$R$2:R2;R2)=1)*1 

我有超过150K的logging,所以Excel崩溃。 是否有可能改善公式或使用VBA代码做同样的事情?

这是一个示例: 在这里输入图像说明

在这个例子中,我试图根据多个标准来计算唯一的logging。 公式=(COUNTIFS(E$2:E2;E2;$G$2:G2;G2;$I$2:I2;I2;$N$2:N2;N2;$O$2:O2;O2;$R$2:R2;R2)=1)*1就像一个魅力,但是我想用vba来做同样的事情。

 Sub CountIfsFormula() Dim varFilas As Long Dim vari As Long On Error GoTo errCountIfsFormula varFilas = Cells(Rows.Count, "A").End(xlUp).Row For vari = 2 To varFilas Range("BA" & vari).Formula = "=(COUNTIFS(E$2:E" & vari & ",E" & vari & ",$G$2:G" & vari & ",G" & vari & ",$I$2:I" & vari & ",I" & vari & ",$N$2:N" & vari & ",N" & vari & ",$O$2:O" & vari & ",O" & vari & ",$R$2:R" & vari & ",R" & vari & ")=1)*1" Range("BA" & vari).Value = CStr(Range("BA" & vari).Value) Next vari Exit Sub 

约200K的logging需要约1个小时。 也许有一个更快的方法来做到这一点。