返回列表 上一主題 發帖

[發問] 如何讓日期欄位的年僅對應該月(已解決)

回復 1# av8d
  1. Option Explicit          '宣告變數的習慣要養成
  2. Dim d As Object
  3. '記得Dim d As Object 這要置於模組的頂端作為這模組的私用變數
  4. 'ComboBox2.List = Split(d(Val(ComboBox1.Value)), ",") 才會有答案
  5. Private Sub UserForm_Initialize()
  6.     Dim A, AMonth As String
  7.     Set d = CreateObject("Scripting.Dictionary")
  8.     With ActiveSheet
  9.         For Each A In .Range("a2", .[a2].End(xlDown))
  10.           If d(Year(A.Value)) = "" Then
  11.             d(Year(A.Value)) = Month(A.Value)
  12.           Else
  13.             AMonth = "," & d(Year(A.Value)) & ","                          '字典物件的item 前後加上 ,
  14.             If InStr(AMonth, "," & Month(A.Value) & ",") = 0 Then          '字典物件的item 中比對月份無重復
  15.                 d(Year(A.Value)) = d(Year(A.Value)) & "," & Month(A.Value) '字典物件的item 再加上 , 及月份
  16.             End If         
  17.           End If
  18.         Next A
  19.         ComboBox1.List = d.keys
  20.     End With
  21. End Sub
  22. Private Sub ComboBox1_Change()
  23.     If ComboBox1.ListIndex > -1 Then
  24.         TextBox9 = ComboBox1.Value
  25.         ComboBox2.List = Split(d(Val(ComboBox1.Value)), ",")
  26.         '字典物件的item 用Split以","轉換成陣列
  27.     End If
  28. End Sub
複製代碼

TOP

        靜思自在 : 唯其尊重自己的人,才更勇於縮小自己。
返回列表 上一主題