나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내

작성자:  

 켈시드 (kelsid)

추천:  2
파일:     조회:  1684
제목:   vba코드 (유동적인 열 선택)문의합니다
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007):

* 아래줄에 질문을 작성하세요 >>

매크로 기록기에 다음과 같이 기록이 되었습니다.




Range("BH3").Select
    ActiveCell.FormulaR1C1 = "=SUMIF(단위,RC[-4],work1!C[-40])"




여기에서 열을 선택하는 "40" 이라는 값을 sheet1의 a1값으로 대치하고 싶은데 어떻게 코딩을 하면 되냐요?




아래와 같이 하니까 에러가 납니다




ActiveCell.FormulaR1C1 = "=SUMIF(단위,RC[-4],work1!C[- & Range("sheet1!a1").Value & ] )"




엑셀 2016입니다.
 
[불량 게시물 신고]  
조삿갓문자열 결합 연산자와 따옴표를 잘못 사용하셨습니다.
ActiveCell.FormulaR1C1 = "=SUMIF(단위,RC[-4],work1!C[-" & Range("sheet1!a1").Value & "])"

또 하나 주의하셔야 할 것은, C[-40] 이라는 의미에 알맞은 정수 값이 sheet1!a1 셀에 저장되어 있어야 합니다.
C[-40]은 상대참조 주소이므로, 이 경우 수식이 들어가는 BH열을 기준하여 왼쪽으로 40칸 이동한 열이 조건부 합산 대상 데이터가 있는 열입니다.
이 원리에 주의하여 알맞은 열 번호(상대위치 값)을 저장해야지, 안 그러면 오류가 발생할 수 있습니다.
07-16 (11:34)
삭제 ■신고
        
  

작성일 : 2018-07-15(23:32)
최종수정일 : 2018-07-15(23:32)