2017-10-12 1 views
-2

기본적으로 두 값을 비교하는 수식이 있습니다 (임시 교정, 컨텍스트는 실제로 중요하지 않음). 그것은 5 개의 다른 기계에서 유사한 정보, 그래서 원래 난 그냥 열 나는 모든 것을 채우기 플래시 것이다 상대 범위 공식을 셀 범위에 입력

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

잘했다 E23에 수식을했다.

나는 VB에서 병합/병합하는 기계의 수를 기준으로 형식 셀을 병합하려고합니다. 내 문제는 새로 병합되거나 재조합 된 셀에 수식을 채우는 것입니다. 내가 E(r):I(r)를 채우는 할

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 

: 이것은 내가 지금까지 무엇을 가지고

(rallcols 반환 9 단지 행)입니다.

이것은 내가 시도한 것입니다. 그것은 나에게 1004 객체 정의 오류를 던지고있다. 문제 해결을 수행하는 방법을 잘 모르겠습니다.

+0

VBA 또는 VBScript는 무엇입니까? 그들은 다르다. –

+0

제 생각에'xlrange'는'Cells'이어야합니다 –

+1

게시 한 코드는 VBScript가 아니라 VBA입니다. 두 가지 중 어느 것이되어야 하는가? 또한 정확한 오류 메시지를 표시하십시오. 의역을 말하지 마십시오. –

답변

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

은 훌륭하게 작동했습니다. chr (34) 트릭에 대해 몰랐다 ... 나는 그것이 "문제를 일으킨다는 것을 알았지 만 그것을 해결할 방법을 찾지 못했다 .... 너 천재 야. –