将相对公式输入到一系列单元格中

时间:2017-10-12 22:26:42

标签: excel-vba vbscript vba excel

基本上我有一个比较两个值的公式(临时校准,上下文无关紧要)。它是5种不同机器上的类似信息,所以最初我在E23中有一个公式,只是说

=if(or(isblank(E21),isblank(E22),"",if(abs(E22-E21)>2,"FAIL","PASS"))

我会闪现填写第一栏,一切都很好。

我正在研究VB根据机器处理的数量来合并/取消合并格式单元格。我的问题是让公式填入新的未合并或重新合并的单元格中。

这是我到目前为止(r只是一行,allcols返回9):

For c = 0 To allcols - 5
    Dim vcel As Range
    Dim v1 As String
    Dim v2 As String
    Set vcel = xlrange(r, 5 + c)
    v1 = vcel.Offset(-2, 0).Address
    v2 = vcel.Offset(-1, 0).Address

    vcel.Formula = "=if(OR(ISBLANK(" & v1 & "),ISBLANK(" & v2 & ")),"""",IF(ABS(" & v1 & "-" & v2 & ") > 2, ""FAIL"", ""PASS""))"
Next c

我希望填充E(r):I(r)

这就是我尝试过的。它给我一个1004对象定义的错误。我不确定如何进行故障排除。

1 个答案:

答案 0 :(得分:0)

 Dim s as string
 s= "=if(OR(ISBLANK(" & v1 & "),ISBLANK(" & v2 & ")),"
 s = s & Chr$(34) & chr$(34) 
 s = s & ",IF(ABS(" & v1 & "-" & v2 & ") > 2, "
 s = s & chr$(34) & "FAIL" & chr$(34) & ", " & chr$(34) 
 s = s & "PASS" & chr$(34) & "))"

 vcel.Formula =s