장애물로 인해 여러 개의 하위 클래스가 클래스 변수를 인식하려고합니다. 전역으로 선언하려고하면 "잘못된 외부 프로 시저"라는 컴파일 오류가 발생합니다. 그런 다음 공용 함수 나 하위 변수를 실행하여 변수를 선언하면 나머지 하위 변수는 정의되지 않은 상태로 유지됩니다. 그들의 값이 UserForm을 통해 변경되고 다른 하위에서 활용되기로되어 있기 때문에 여러 개의 하위가 변수를 인식하기를 원합니다.VBA 전역 클래스 변수
이러한 방식으로 작동 할 수 있다면 좋지만 내 디자인에 근본적인 결함이있을 수 있음을 이해합니다. 제발 조언 해!
이것은 "cRSM"라는 이름의 클래스 모듈로 삽입 내 클래스 정의입니다 :
'Bedoya
Dim Bedoya As cRSM
Set Bedoya = New cRSM
Bedoya.Name = "Bedoya"
:
Option Explicit
Private pName As String
Private pDesiredGrowth As Double
'Name of RSM
Public Property Get Name() As String
Name = pName
End Property
Public Property Let Name(Value As String)
pName = Value
End Property
'Growth property
Public Property Get DesiredGrowth() As Double
DesiredGrowth = pDesiredGrowth
End Property
Public Property Let DesiredGrowth(Value As Double)
If Value > 0 And Value < 1 Then
pDesiredGrowth = Value
End If
End Property
이 (필자는 글로벌 선언 구역에 넣어) 잘못된 프로 시저 오류입니다 그리고 이것은 "변수가 정의되지 않은 오류"(개인 하위 내에서)입니다 :
고맙습니다. f 또는
표준 모듈 (나는 광산 MGlobals 이름)에서
을위한 'Set Bedoya = New cRSM : Bedoya.Name = "Bedoya"'클래스 초기화 메소드에서 이것을하십시오 -이 코드는 메소드 외부에 가질 수 없습니다. –
@Tim Williams, 어떻게 "방법"이라고 부릅니까?작은 코드 예제 plz, 여기서 분실했습니다 –
메서드는 Sub 또는 Function –