EXCEL VBA 코딩중 질문 좀…

  • #99829
    VBA 149.***.40.74 2939

    생전 해보지도 않던 VBA를 하려니… 고생중입니다.

    엑셀시트에 active controls form 으로 check box를 하나 만들어서 같은 문서 다른 시트에 연결했는데.. (체킹되면 ‘user input’이라는 시트에 몇몇 셀들의 색이 변하게 하는 간단한 코딩입니다.)

    그런데, 자꾸 아래와 같은 에러가 뜨네요. ㅜ.ㅜ
    같은 시트에하면 에러가 안나는데.. 다른 시트에 하면 에러가 납니다.

    Select method of range class failed

    인터넷에서 에러원인을 검색해봤더니..
    activate 를 먼저해라..
    visible 하게 만들어라..
    unprotect 해라..
    unlock 해라..
    뭐라뭐라 조언을 해주는데.. 당췌 어떻게 뭘 하라는지 알아들을수가 없어서.. 이곳 고수님들께 물어보게 되었습니다.

    원코드는 아래와 같습니다.

    Private Sub CheckBox1_Click()

    Sheets(“user input”).Select
    Range(“a28:f33”).Select
    With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorDark1
    .TintAndShade = -0.249977111117893
    .PatternTintAndShade = 0
    End With

    End Sub

    Range(“a28:f33”).Select <-- 이 라인에서 에러가 난다고 하는데.. 뭔가 먼저 디파인을 해줘야 하는건지.. 도와주세요.

    • BH 67.***.105.231

      2007 버전인가요? 엑셀 2003에서 돌리니 .ThemeColor / .TintAndShade / .PatternTintAndShade 모두 지원하지 않는 메소드인것 같네요.
      코딩상 문제는 없는 것 같으니, Range 객체의 메소드가 맞는지 확인해보시면 될겁니다.

    • 후움… 12.***.236.34

      이렇게 해보세요… 아마 range가 어느 워크시트에 있는 range인지 확실치 않아서 생기는 에러같아요…
      Sheets(“user input”).Select
      Worksheets(“user input”).Activate
      ActiveSheet.Range(“a28:f33”).Select

      그리고 보통은 매크로(VB에디터에선 모듈을 추가)를 만들고 각 워크시트에선 매크로를 불러다 쓰면 그런 일이 잘 안생길거에요..

    • 후움… 12.***.236.34

      다시 해보니까…

      Sheets(“user input”).Select
      ActiveSheet.Range(“a28:f33”).Select

      요것만 있어도 되네요…

    • VBA 149.***.40.74

      BH님 2007버젼 맞습니다. 아주 불편해요 ㅎㅎ
      후움님 ActiveSheet 로 하니까 되네요. 정말 감사드립니다. 근처에 계시면 시원한 냉커피한잔 사드리고 싶은 마음이네요. 좋은 하루 보내세요. ^^

    • 후움… 69.***.221.107

      넵 잘 되셨다니 다행이네요. (저도 property부분은 안되더군요… ^^)