programing

사용자 정의 데이터 유형을 사전에 넣는 방법

css3 2023. 8. 18. 22:51

사용자 정의 데이터 유형을 사전에 넣는 방법

내 데이터 유형을 정의하고 사전에 값으로 저장하려고 합니다.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