Excel VBA - 将变量设置为公式的值

jep*_*esr 1 variables excel vba excel-vba

无论如何,在VBA中将变量设置为公式的结果/值.我需要它来计算VBA中的结果而不是单元格中的结果.

Variable1 = "=SUBTOTAL(3,INDIRECT('New Sheet 1'!A3:A4500))"
Variable2 = "=SUMPRODUCT(--ISERR('New Sheet 1'!J3:J4000))"
Variable3 = "=COUNTBLANK('New Sheet 1'!P2:P4000)"
Run Code Online (Sandbox Code Playgroud)

我已经在这里看到使用'-marks的一些问题.

提前致谢!

Sco*_*ner 6

使用评估

Variable1 = Application.Evaluate("SUBTOTAL(3,INDIRECT('New Sheet 1'!A3:A4500))")
Variable2 = Application.Evaluate("SUMPRODUCT(--ISERR('New Sheet 1'!J3:J4000))")
Variable3 = Application.Evaluate("COUNTBLANK('New Sheet 1'!P2:P4000)")
Run Code Online (Sandbox Code Playgroud)

或者您可以使用简短的评估:

Variable1 = [SUBTOTAL(3,INDIRECT('New Sheet 1'!A3:A4500))]
Variable2 = [SUMPRODUCT(--ISERR('New Sheet 1'!J3:J4000))]
Variable3 = [COUNTBLANK('New Sheet 1'!P2:P4000)]
Run Code Online (Sandbox Code Playgroud)

[]使用这种方式是简写Application.Evaluate和使用它的公式将起作用.

如果你的公式包含带变量的连接字符串,那么速记方法将不起作用,并且Application.Evaluate需要拼写出引号