我有一个数据工作表,其格式如下(超过100个列)
然后我有另一个文件,其中包含一些规则(数据文件中每列有多个规则)。我为每条规则制定了vba条件;例如,一个规则是检查数据文件的A列的所有行(50K +行)应仅具有BP或Trip值。所以我将其翻译为低于VBA
DataWB.Worksheets(1).Cells(J,X)=“ BP”或DataWB.Worksheets(1).Cells(J,X)=“ Trip”
验证按钮代码
f = Trim(ThisWorkbook.Worksheets(1).Cells(2, 3))
f = Replace(f, "J", 2)
f = Replace(f, "X", 1)
Debug.Print Application.Evaluate(f)
现在的问题是,评估抛出类型不匹配,如果我使用CBOOL,它总是返回TRUE。我也尝试了其他变体(例如添加=或?前缀),但似乎没有任何效果。任何帮助将不胜感激。
答案 0 :(得分:0)
评估无法理解VBA代码,只能使用excel工作表公式,因此我将其替换为图片中的公式,并且现在可以正常使用
For J = 2 To lRow
For x = 2 To 26
f = Trim(ThisWorkbook.Worksheets(1).Cells(x, 3))
f = Replace(f, "WB", SourceWB.Name)
f = Replace(f, "WS", SourceWB.Worksheets(1).Name)
f = Replace(f, "R#", J)
test = Evaluate(f)
If Not test Then Call LogError(J, x)
Next x
Next J