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

작성자:  

 cho88 (cho9818)

추천:  2
파일:     조회:  663
제목:   여러 그래프의 범위를 동시에 바꾸기 위한 매크로
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

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

* 아래줄에 질문을 작성하세요 >>
안녕하세요
몇일 전 부터 매크로 공부를 시작한 초보자입니다.
여러 개의 그래프에서 y축의 최대값과 최소값을 동시에 같은 값으로 바꾸려고 매크로를 만저보는데 어렵네요 

    a = Cells(4, 1)
    b = Cells(6, 1)

    For n = 1 To 20

    ActiveSheet.ChartObjects("차트 n").Activate
    ActiveChart.Axes(xlValue).Select
    ActiveChart.Axes(xlValue).MaximumScale = a
    ActiveChart.Axes(xlValue).MinimumScale = b

    n = n + 1

    next
 
이렇게 매크로를 작성했더니 4번째 줄에서 디버그가 발생하네요.
어찌해야 하는지 조언좀 부탁드립니다.
 
[불량 게시물 신고]  
정일한"차트 n" 아마도 여기서 생긴 문제인 듯 한데요..
ActiveSheet.ChartObjects("차트 "&n).Activate
이렇게 한 번 바꿔보실래요???
05-02 (19:03)
삭제 ■신고
cho88감사합니다 수정했더니 잘 작동하네요
근데 
n=n+1 <- 이 식이 있으면 숫자가 2씩 증가해서 차트 1,3,5...등 홀수번 차트만 변경되고, 저 식을 지우니까 1~20까지 적용되던데 원래 그런건가요?
05-03 (15:01)
삭제 ■신고
정일한for n=1 to 20 (step 1) <-- 괄호가 생략되어 있음
이 문장은 n변수에 초기값을 1을 넣고 
next를 만나면 n이 1만큼(step 만큼) 증가하는 것입니다.
n은 20까지 증가합니다.

그런데 next 앞에 n=n+1이 있으니 당연히 질문하신 것 처럼 되겠죠.

의도하신 것이 아니라면 n=n+1은 지우시는 것이 맞구요.
만일 1,3,5,7... 이런식으로 n의 값이 변하기를 원한다면,
n=n+1코드를 별도로 쓰시는 것보다 
step 2를 이용하시는 것도 좋은 방법입니다.
05-03 (16:20)
삭제 ■신고
cho88친철한 설명 감사합니다. 덕분에 많이 배우고 갑니다05-04 (08:05)
삭제 ■신고
        
  

작성일 : 2023-05-02(18:43)
최종수정일 : 2023-05-02(18:43)