2016-06-26 1 views
0
ActiveCell.FormulaR1C1 = "=SUM(Range(Str_rng &"2"&":"& Str_rng & finalOlastRow-1)" 

값 합계 ND 마지막 행까지 행하려고하고, -1의 마지막 행에 추가되어야 할 . 그러나 예상치 못한 명령문 오류가 발생합니다.예상 단부 I는 2 내지 Str_rng 칼럼 어드레스 값을 제공하는 상기 코드에 동적으로 증가 열

enter image description here

(인용문 사이) 노란색 부분이 체결됩니다

+1

'ActiveCell.FormulaR1C1 = "= SUM ("& Str_rng & "2"& ":"& Str_rng & finalOlastRow - 1 & ")"'대신 사용해보십시오. – Ralph

+0

감사합니다. – Prakash

+0

나는 그것을 깨달았다. 제안 된 수식이 효과가있었습니다. – Prakash

답변

2

코드의 올바른 라인이 있어야한다 : 왜

ActiveCell.FormulaR1C1 = "=SUM(" & Str_rng & "2:" & Str_rng & finalOlastRow - 1 & ")" 

그냥 여기에 솔루션을 신비성을하는 것은 수식 그대로 (변경 없음). 녹색 부분은 열을 나타내는 문자 여야합니다. 파란색 부분은 끝 행 (합계)을 나타내는 숫자 여야합니다. 또한 계산에 사용되기 때문에 숫자 여야합니다 (1이 공제됩니다).

"=SUM(" & "E" & "2:" & "E" & 20 & ")" 

번호 (20)는 스트링 (텍스트)이 아니라고,

"=SUM(E2:E20)" 

참고 동일하다 :

그래서 Str_rng = "E"finalOlastRow = 21 것을 상기 수식으로 변환된다고 가정. 그러나 VBA는 자동으로 텍스트에 숫자를 추가하려고 함을 감지하고 숫자를 텍스트로 변환합니다 (연결을 가능하게 만들기 위해).

+0

ActiveCell.Formula = "= G2 + H2 + K2 + I2 +"& Last_Str_rng & "2" "". 이것은 나에게 오류를주고있다. 그 이유는 무엇일까요? – Prakash

+0

의심스러운 경우'MsgBox = "= G2 + H2 + K2 + I2 +"& Last_Str_rng & "2" ""로 줄을 바꾸십시오. 그런 다음 결과 메시지가 새 메시지 상자에 표시됩니다. 거기에 오류가 바로 표시됩니다. 끝에 너무 많은 문자가 하나 있음을 알 수 있습니다. – Ralph

+0

그냥 알다시피 : 우리는 (이 사이트에서) 서로를 가르치려고 노력합니다. 우리는 또 다른 작업 솔루션을 제공하는 것을 좋아하지 않습니다. 우리는 솔루션을 직접 찾을 수있는 모든 도움을 제공하는 것을 선호합니다. 그렇지 않으면 같은 문제/이유가 계속 발생합니다. – Ralph