评估()不工作
我是新来evaluate
。 所以如果下面的代码工作
If Evaluate("=NOT(ISERROR(MATCH(" & temp & ",C:C,0)))") Then
为什么这下面没有?
If Evaluate("=NOT(ISERROR(MATCH(" & c & ",sal,0)))") Then
temp是一个string,而c是一个数组中的一个元素,它也被看作是一个string。 C:C是活动页面上的范围。 萨尔是一个单独的工作表范围。
Set wsSal = ThisWorkbook.Worksheets("Sal Sum") Set sal = wsSal.Range("C17:C50")
我努力了
If Evaluate("=NOT(ISERROR(MATCH(c ,sal,0)))") Then
这给我一个运行时错误13types不匹配。
如果不工作,前者进入if语句,后者则不行。
将sal
定义为对象variables并将其设置为范围,您可以创build名为sal
的定义名称。
从工作表中打开名称pipe理器。
input名字“sal”
在Refers To
字段中,input='Sal Sum'!$C$17:$C$50
确认名称。
现在,您可以按照您所描述的方式使用Evaluate()。
UPDATE
这是另一种方法,你可能会觉得更容易维护。
使wsSal
成为模块级variables。
使sal_
模块级常量:
Const sal = "C17:C50"
做一个function:
Function sal() sal = wsSal.Range(sal_) End Function
现在,您可以按照您所描述的方式使用Evaluate()。