2017-10-12 146 views
-2

本質上,我有一個公式來比較兩個值(溫度校準,上下文無關緊要)。這是在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個對象定義的錯誤。我不知道如何進行故障排除。

+0

這是VBA還是VBScript?他們是不同的。 –

+0

我的猜測是'xlrange'應該是'Cells' –

+1

你發佈的代碼是VBA,而不是VBScript。它應該是哪兩個?另外,請顯示確切的錯誤信息。不要複述。 –

回答

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 
+0

工作出色。不知道關於(34)的詭計......我知道這是導致這個問題的原因,但找不到解決這個問題的方法......你是一個天才 –

相關問題