- 帖子
- 1567
- 主題
- 40
- 精華
- 0
- 積分
- 1591
- 點名
- 0
- 作業系統
- Windows 7
- 軟體版本
- Excel 2010 & 2016
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2020-7-15
- 最後登錄
- 2026-2-2
|
3#
發表於 2025-11-18 14:54
| 只看該作者
回復 1# hcm19522
謝謝前輩分享此主題,後學藉此帖練習陣列與字典
學習間發現:令字典相等時,可以讓字典內成員同動,如同字典的分身,學習心得如下,請前輩們指教
執行結果:
Option Explicit
Sub TEST()
Dim Crr(1 To 2, 1 To 32), D As Date, Z, A, C%, T$, T1$, T2$, T3$
[B2].Resize(5, 15).ClearContents
Set Z = CreateObject("Scripting.Dictionary")
D = Year(Date) & "/" & Val([A4]) & "/15"
Set Z("一") = CreateObject("Scripting.Dictionary")
Z("一")("A") = Crr: Set Z("三") = Z("一"): Set Z("六") = Z("一")
Set Z("日") = CreateObject("Scripting.Dictionary")
Z("日")("A") = Crr: Set Z("二") = Z("日"): Set Z("四") = Z("日")
For D = DateSerial(Year(D), Month(D), 1) To DateSerial(Year(D), Month(D) + 1, 0)
T = Right(Format(D, "[DBNum1]aaa"), 1)
If Not Z.Exists(T) Then GoTo d01
A = Z(T)("A")
C = A(1, 32) + 1
A(1, 32) = C
A(1, C) = Format(D, "d")
A(2, C) = T
Z(T)("A") = A
d01: Next
[B2].Resize(2, Z("一")("A")(1, 32)) = Z("一")("A")
[B5].Resize(2, Z("日")("A")(1, 32)) = Z("日")("A")
End Sub
Sub TEST_1()
Dim X, Y, Z
Set Z = CreateObject("Scripting.Dictionary")
Set Y = Z
Set X = Z
X("A") = 1000
MsgBox "Y(""A"") =" & Y("A")
MsgBox "Z(""A"") =" & Z("A")
End Sub |
|