Excel VBA 시계 창에서 사전의 값을 모니터링하는 방법은 무엇입니까?
저는 엑셀 VBA 사전을 사용하고 있습니다.dict As New Dictionary스크립트 런타임에 참조를 추가합니다.디버깅하는 동안 이러한 키를 모니터링하려고 하면 사전에 있는 키만 볼 수 있고 각 키의 각 값은 볼 수 없습니다.
가치도 볼 수 있는 방법이 있습니까?그러면 디버깅이 훨씬 쉬워질 것입니다.
편집: 당신의 답변을 바탕으로, 쉬운 해결책은 없지만, 저는 다음과 같이 할 수 있습니다.
전역 변수 사용Dim d_obj As Object그리고 그것을 지속적으로 모니터링하고 사전의 값을 찾아야 할 때마다, 나는 즉시 창에 입력합니다.Set d_obj(key) = ...모니터 창에서 값을 볼 수 있습니다.
추가적으로 제가 할 수 있는 것은 사전을 가져와서 값을 목록으로 반환하는 함수를 작성하고 직접 창에서 이 함수를 유사하게 사용하는 것입니다.모두에게!
저는 주로 타자를 칩니다.dict.items바로 옆 창에서 선택하고 Shift+F9로 이동하여 시계 창에 삽입합니다.
또는 모든 항목을 나열할 수 있는 바로 옆 창에 한 줄로 표시합니다.
for each i in dic.Items: debug.Print i: next
저는 모든 단순 유형 변수와 중첩된 모든 사전의 내용을 시계 창에 표시하는 데 사용할 수 있는 재귀 함수를 사용합니다.이렇게 하면 다음과 같은 형태로 출력이 생성됩니다.
Fred:rabbit; Tiddles:cat; Fluffy:cat; Food:[1:lettuce; 2:biscuits; ];
여기서 키와 값은 ":"로 구분되고, 항목은 ";"로 구분되며, 중첩 사전은 대괄호로 표시됩니다.
Public Function DictionaryContents(ByVal dcDictionary, Optional ByVal boolShowKeyIndex As Boolean = False)
Dim Keys
Keys = dcDictionary.Keys
Dim i As Long
Dim stIndex As String
Dim stOutput As String
stOutput = vbNullString
For i = 0 To dcDictionary.Count - 1
If boolShowKeyIndex Then
stIndex = "(" & i & ")"
End If
stOutput = stOutput & Keys(i) & stIndex & ":"
If IsObject(dcDictionary(Keys(i))) Then
stOutput = stOutput & "[" & DictionaryContents(dcDictionary(Keys(i)), boolShowKeyIndex) & "]"
Else
stOutput = stOutput & dcDictionary(Keys(i))
End If
stOutput = stOutput & "; "
Next i
DictionaryContents = stOutput
End Function
언급URL : https://stackoverflow.com/questions/9803708/how-to-monitor-the-values-in-a-dictionary-in-the-excel-vba-watch-window
'programing' 카테고리의 다른 글
| asp.net 경로에서 타일(~) 사용 (0) | 2023.06.15 |
|---|---|
| Python 속도 테스트 - 시간 차이 - 밀리초 (0) | 2023.06.15 |
| Python - TypeError: 'int64' 유형의 개체는 JSON 직렬화할 수 없습니다. (0) | 2023.06.15 |
| WAS(Windows Process Activation Service)에서 응용 프로그램 풀을 제공하기 위한 작업자 프로세스를 시작할 때 오류가 발생했습니다. (0) | 2023.06.15 |
| 서로 다른 컨트롤러 작업 방법 간에 데이터 전달 (0) | 2023.06.15 |