- 帖子
- 1447
- 主題
- 40
- 精華
- 0
- 積分
- 1471
- 點名
- 0
- 作業系統
- Windows 7
- 軟體版本
- Excel 2010 & 2016
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2020-7-15
- 最後登錄
- 2025-5-5
|
12#
發表於 2023-5-17 07:13
| 只看該作者
回復 11# cypd
謝謝前輩
後學囫圇吞棗的學習想必困擾各位了,謝謝論壇的包容,謝謝各位前輩指教
後學訂正如下的學習方案心得註解,請前輩參考
Option Explicit
Sub TEST_2()
Dim Brr, i&, Y%, M%, D1 As Date, D2 As Date, N%
'↑宣告變數
Y = [AH1] + 1911: M = [AH2]: D1 = Y & "/" & M & "/" & "1"
'↑令Y變數是 [AH1]儲存格值+1911,
'令M變數是 [AH2]儲存格值,
'令D1這日期變數是 西元年/月/1
Y = IIf(M = 12, Y + 1, Y): M = IIf(M = 12, 1, M + 1)
'如果月份是12,就令年分+1,
'如果月份是12,就令月份是 1月,否則就將月份+1,
'這是要處裡跨年辨認12月最後一天
D2 = Y & "/" & M & "/" & "1": D2 = D2 - 1
'↑令D2這日期變數是 西元年/月/1 (D2是下個月的第1天)
With [A4:B65]
'↑以下是關於儲存格的程序
.ClearContents: Brr = .Value
'↑清除儲存格內容
.FormatConditions.Delete
'↑刪除格式化條件
.Interior.ColorIndex = xlNone
'↑令儲存格底色是 無色
For i = 0 To (D2 - D1)
'↑設順迴圈
Brr(i * 2 + 1, 1) = D1 + N: Brr(i * 2 + 1, 2) = Right(Format(D1 + N, "aaa"), 1)
'↑令日期與星期寫入Brr陣列裡
If InStr("六日", Brr(i * 2 + 1, 2)) Then Cells(i * 2 + 4, "B").Interior.ColorIndex = 38
'↑令即將是星期六日的儲存格底色先變為桃紅色
N = N + 1
'↑令N變數累加 1
Next
.Value = Brr
'↑令Brr陣列值寫入儲存格中
End With
End Sub |
|