2013-06-10 6 views
0

R1C1을 사용하는 셀 범위에 수식을 복사 할 VBA 코드가 있습니다. 불행하게도, 난 마지막 줄에 두 번째에 다음과 같은 오류가 발생합니다 : 내가 잘못 여기서 뭐하는 거지
Runtime error '1004': Application-defined or object-defined error.Excel VBA - 런타임 오류 '1004'

Dim pct As Single 
pct = 1 

With ThisWorkbook.Sheets("Data").UsedRange 
    Dim lastR As Long 
    lastR = .Rows.Count 
    Dim lastC As String 
    lastC = col_letter(.Columns.Count) 
End With 

With ThisWorkbook.Sheets("Calculations") 
    .Range("A1:" & lastC & 1).Value = 100 
==> .Range("A2:" & lastC & lastR + 1).FormulaR1C1 = "=R[-1]C*(1+" & pct/100 & "*'Data'!R[-1]C" 
End With 

?

+0

오류가 발생했을 때 현재 값과 마지막 값은 무엇입니까? –

+0

''lastC'' = "CU"; ''lastR'' = 1000; ''pct'' = 0.1 – bluebox

+0

VBA에서 &와 +를 사용하는 것과 다른 점을 알고 있습니까? 그것의 경로는 아마도 당신에게 파일과 확장 파일을 가지고 있습니다. –

답변

1

난 당신이 엑셀/오피스의 영어 이외의 버전을 실행하는 생각에 괄호를 놓치고있어. 따라서 숫자 분리 표시의 문제가있을 수 있습니다. 문자열로 정의 된 함수에서 . (dot)을 사용하고 Excel에 formulaR1C1 property을 전달해야합니다. 그런 다음 엑셀 셀에 기능을 넣을 때 필요한 , (comma)으로 변환됩니다. 따라서이 선은 오류없이 나를 위해 작동 :

....=Replace("=R[-1]C*(1+" & pct/100 & ")*Data!R[-1]C", ",", ".") 

한가지 더, 나는 시트 이름을 '' (single quotation marks)를 제거했습니다.

+0

도움을 주신 모든 분들께 감사드립니다. KazJaw의 제안이 드디어 문제를 해결했다고 생각합니다. – bluebox

+0

업데이트 : 내 운영 체제의 국가 별 설정을 '미국'으로 변경했습니다. 이제 문제없이 모든 함수를 사용할 수 있으며''replace''를 사용할 필요조차 없습니다. – bluebox

2

당신은 공식-아마도

"=R[-1]C*(1+" & pct/100 & ")*'Data'!R[-1]C" 
+0

맞아요, 저는 괄호가 빠졌습니다. 그러나 런타임 오류는 같은 줄에서 계속 발생합니다 ... – bluebox

+0

수식 '= R [-1] C * (1+ "& pct &"/ 100) *'Data '! R [-1] C "' – JosieP

+0

동일한 오류가 발생합니다 ... – bluebox