Excel VBA 코드, ON 변수 GOTO 대안

Excel VBA 코드, ON 변수 GOTO 대안

나는 진술의 데이터 장단점을 읽었으며 ON X GOTOCalls 및 Jmp 대안과 그것이 나쁜 습관으로 간주된다는 사실을 잘 알고 있지만 그 사용에 대한 간단한 대안 솔루션을 원합니다. 마찬가지로 (게으른 것이 아니라) 각 대안에 대해 광범위한 코드 줄을 사용하는 것은 비효율적이고 읽기 쉽지 않은 것 같습니다.

본질적으로 나는 다음과 같은 간단한 대안을 원합니다(특정 코드가 아닌 영어 코드로 작성되었지만 VBA에 필요함).

Input x

On x Goto LineA, LineB, LineC

LineA....
End

LineB....
End

LineC....
End

또는:

List of alternatives (choice = 1, choice = 2, choice = 3)

Input choice

on choice someVariable = string1, string2, string3

(Remaining code which uses that string)

둘 다 매우 유사합니다. 목록의 길이는 제한이 없고 문자열은 더 길 수도 있지만 특정 경우마다 새 코드 줄로 이동하는 대신 단일 문으로 선택된다는 점을 염두에 두세요.

답변1

모범 사례와 조언을 무시하지 마십시오. 이 코드는 완벽하게 읽을 수 있으며 규칙을 위반하지 않고 필요한 작업을 수행합니다...

Sub test()

  Select Case InputBox("Enter a value")

    Case "1"
      'Do things that are specific to "1"
       Beep
      'Or better still, call a specific sub
      DoSomething1
    Case "2"
      'Do things that are specific to "2"
       Beep
      'Or better still, call a specific sub
      DoSomething2
    Case "3"
      'Do things that are specific to "3"
      Beep
      'Or better still, call a specific sub
      DoSomething3
    Case Else
      'Do Nothing

  End Select

End Sub

Sub DoSomething1()
  Beep
End Sub

Sub DoSomething2()
  Beep
  Beep
End Sub

Sub DoSomething3()
  Beep
  Beep
  Beep
End Sub

관련 정보