返回列表 上一主題 發帖

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

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

本帖最後由 GBKEE 於 2012-7-11 16:20 編輯

YM.rar (378.53 KB)

如何讓ComboBox1選到2012的時候ComboBox2僅顯示6月7月
ComboBox1選到2013的時候ComboBox2僅顯示8月9月

因為資料2012年只有6月7月所以僅顯示該年的月

回復 1# av8d


    YM2.rar (373.18 KB)

TOP

本帖最後由 av8d 於 2012-7-11 16:27 編輯

回復 2# GBKEE


    請問大大~

如果我新增了一個ComboBox3,為了顯示D欄,該如何插入?
原本沒有ComboBox1,ComboBox2的時候是這樣子
Private Sub UserForm_Initialize()
    Dim d As Object, A
    Set d = CreateObject("Scripting.Dictionary")
    With ActiveSheet
        For Each A In .Range("d2", .[d2].End(xlDown))
          d(A.Value) = ""
        Next A
        ComboBox3.List = Application.Transpose(d.keys)
    End With
End Sub


如果新增一個ComboBox3和ComboBox4做搭配,該如何插入?
原本沒有ComboBox1,ComboBox2的時候是這樣子
Dim d As Object
Private Sub UserForm_Initialize()
    Dim A As Range, W As String
    Set d = CreateObject("Scripting.Dictionary")
    With ActiveSheet
        For Each A In .Range("d2", .[d2].End(xlDown))
            If d(A.Value) = "" Then
                d(A.Value) = A.Offset(, 1).Value
            Else
                 W = "," & d(A.Value) & ","   '字典物件內容前後加上 ,
                If InStr(W, "," & A.Offset(, 1) & ",") = 0 Then d(A.Value) = d(A.Value) & "," & A.Offset(, 1)
                'InStr(w, "," & A.Offset(, 1) & ",") = 0 比對字典物件內容有無A.Offset(, 1)的字串
            End If
         Next
         ComboBox3.List = d.KEYS
     End With
End Sub

TOP

回復 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

        靜思自在 : 站在半路,比走到目標更辛苦。
返回列表 上一主題