사용자 정의 데이터 유형을 사전에 넣는 방법
내 데이터 유형을 정의하고 사전에 값으로 저장하려고 합니다.VBA가 내 데이터 유형을 수락하지 않는다고 불평합니다.이 일을 어떻게 할 것인지에 대한 아이디어가 있습니까?
Option Explicit
Public Type Translation
german As String
french As String
italian As String
End Type
Private resource As Object
Public Sub addTranslation(key As String, g As String, f As String, i As String)
Dim trx As Translation
trx.german = g
trx.french = f
trx.italian = i
resource.add key, trx '<== here VBA is complaining
End Sub
Public Sub initResource()
If resource Is Nothing Then Set resource = CreateObject("scripting.dictionary")
End Sub
다음은 오류 메시지입니다.
공용 개체 모듈에 정의된 사용자 정의 유형만 변형으로 강제 전환하거나 늦게 바인딩된 모듈로 전달할 수 있습니다.
좀 더 파고든 후에 저는 다음과 같은 답을 찾았습니다.
사용자 정의 데이터 유형을 수집 사전에 넣으려면 클래스로 정의해야 합니다.새 클래스 모듈을 추가하고 다음 코드를 추가하면 됩니다.
Public german As String
Public french As String
Public italian As String
클래스 모듈의 이름을 trans로 지정했기 때문에 결과 코드는 다음과 같습니다.
Private resource As Object
Public Sub addTranslation(k As String, g As String, f As String, i As String)
Dim trx As trans
Set trx = New trans
trx.german = g
trx.french = f
trx.italian = i
resource.Add k, trx
End Sub
Public Sub initTranslations()
If resource Is Nothing Then Set resource = CreateObject("scripting.dictionary")
End Sub
이제 번역을 동적으로 추가할 수 있습니다.
언급URL : https://stackoverflow.com/questions/9178177/how-to-put-user-defined-datatype-into-a-dictionary
'programing' 카테고리의 다른 글
도커 컨테이너에 인터넷이 없습니다. (0) | 2023.08.18 |
---|---|
Twitter Bootstrap CSS 클래스에 대한 jQuery show()가 숨겨짐 (0) | 2023.08.18 |
VBA를 통해 다른 워크북의 데이터 복사 (0) | 2023.08.18 |
엔터티 프레임워크 4 엔터티 디자이너에서 두 개체 간의 연결을 올바르게 설정하려면 어떻게 해야 합니까? (0) | 2023.08.18 |
SpringBoot 로깅 - 모든 로그 항목 시작 시 관련 없는 하이픈 사용 (0) | 2023.08.18 |