2012-09-25 2 views
0

에 넣어 엑셀하는 코드 메신저 노력하고 있습니다 :함께 셀 값을 추가하고 여기에 새로운

Set found = Worksheets("Result").Range("A:A").Find(Prefix, , xlValues, xlWhole) 
found.Offset(0, 1).Value = CInt(found.Offset(0, 1).Value) + CInt(C.Offset(0, 1).Value) 

접두어 열에서 발견 된 3 자리 숫자입니다, 내가 다음하고 싶은 것은 증가이다 "C"의 오른쪽에있는 셀 하나에서 발견되는 위치의 오른쪽에있는 셀. 형식 불일치 오류가 발생합니다.

For Each C In Worksheets("AMZ").Range("C2:C" & endRow).Cells 

아이디어 : C가 어디에서 오는지 여기

은?

편집 : found.Offset(0, 1).Value) 또는 CInt(C.Offset(0, 1).Value) 직접 정수로 번역하지 않습니다 "" 또는 "1234hello" 또는 아무것도 같은 문자열 값입니다

Sub processData() 

Dim endRow As Variant 
endRow = Worksheets("AMZ").Range("A65536").End(xlUp).Row 

For Each C In Worksheets("AMZ").Range("C2:C" & endRow).Cells 
    Dim found As Range 
    Prefix = C.Value 
    C.Select 

    'remove prefix 
    If Not Left(Prefix, 3) = "FBA" Then 
     'nothing 
     If Mid(Prefix, 3, 1) = "-" Then 
      Prefix = Left(Prefix, 2) 
     ElseIf Mid(Prefix, 4, 1) = "-" Then 
      Prefix = Left(Prefix, 3) 
     Else 
      Prefix = "-1" 
     End If 

     If Not Prefix = "-1" Then 
      Set found = Worksheets("Result").Range("A:A").Find(Prefix, , xlValues, xlWhole) 
      found.Offset(0, 1).Value = CInt(Val(found.Offset(0, 1).Value)) + CInt(Val(C.Offset(0, 1).Value)) 
     End If 
    End If 
Next 

End Sub 
+0

전체 코드를 게시하십시오 – brettdj

+0

found.offset (0,1) 및 c.offset (0,1) 범위에는 어떤 값이 있습니까? – nutsch

답변

1

경우 전체 코드는, 당신은 당신이 나열된 오류가 발생합니다.

이 문제를 해결하는 가장 쉬운 방법은 Val(string) 함수로 값을 묶는 것입니다. 당신이 가능하게 수를 수 없었다 제공하는 가치, 그것은 0으로 기본 설정됩니다 경우 상황에 , 당신은 그렇지 않은 경우에 어떤 숫자를 취할 것, 발에 대해 다음과 같은

found.Offset(0, 1).Value = CInt(Val(found.Offset(0, 1).Value)) + CInt(Val(C.Offset(0, 1).Value))

메모를 사용합니다 제안 된 문자열의 시작 부분. 추가 정보 Val read the link. (same as above)

+0

이것은 지금 오버 플로우 오류를주고있다 .. 내 질문에 내 모든 코드를 게시 할 것입니다 –

+0

CInt 대신 CLng를 사용해보십시오. 전달 된 값이> = 32768이면 CInt는 실패합니다. –

관련 문제