excel vba syntax for evaluate(“min(index(row
从另一篇文章, 结合行重复我收到答案,但有问题parsing评估线。
mr = Application.Evaluate("MIN(INDEX(ROW(1:" & rw & ")+(('" & wsn & "'!B1:B" & rw & "<>'" & wsn & "'!B" & rw & ")+('" & wsn & "'!C1:C" & rw & "<>'" & wsn & "'!C" & rw & "))*1E+99, , ))")
-
我最初被卡在部分
INDEX(ROW(1:" & rw & ")
我知道Row函数提供行号,但上面的语法是范围1:rw或??
- +加号是逻辑OR语句?
如果有人可以提供一个更简单的例子MIN(INDEX(ROW(…)只有一些参数和解释,这将是非常有用的。
每当有疑问,请在即时窗口中debugging公式。 这是一个例子
Sub Sample() Dim sFormula As String Dim rw As Long Dim wsn As String rw = 1 '<~~ Giving them some fictitious values. Give actual value if you have one wsn = "Sid" '<~~ Giving them some fictitious values. Give actual value if you have one sFormula = "MIN(INDEX(ROW(1:" & _ rw & _ ")+(('" & _ wsn & _ "'!B1:B" & _ rw & _ "<>'" & _ wsn & _ "'!B" & _ rw & _ ")+('" & _ wsn & _ "'!C1:C" & _ rw & _ "<>'" & _ wsn & _ "'!C" & _ rw & _ "))*1E+99, , ))" Debug.Print sFormula 'mr = Application.Evaluate(sFormula) End Sub
公式将清楚你:)
您甚至可以将该公式复制到新工作表中进行testing。