- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
回復 1# sammay
UserForm3- Dim 日期()
- Private Sub UserForm_Initialize()
- CommandButton1.Enabled = False '確定鈕控制項: 不可以使用
- 日期 = Array(ComboBox1, ComboBox2, ComboBox3, ComboBox4) '將年月的輸入 置入在陣列
- ComboBox1.RowSource = "下拉選單!c2:c11"
- ComboBox2.RowSource = "下拉選單!d2:d13"
- ComboBox3.RowSource = "下拉選單!c2:c11"
- ComboBox4.RowSource = "下拉選單!d2:d13"
- End Sub
- Private Sub CommandButton1_Click()
- Dim Data As Range, Rng As Range, Day1 As Date, Day2 As Date, Msg As String, E As Range
- Set Data = Sheets("總表").Range("A3").CurrentRegion
- 'Range("A3").CurrentRegion : 總表的資料 A2:D2 ,E欄 請不要有資料輸入
- If Data.Rows.Count = 1 Then '只有欄位
- MsgBox "總表: 沒有資料 !!!"
- Unload Me
- Exit Sub
- End If
- Day1 = DateSerial(日期(0), 日期(1), 1) '轉入日期
- Day2 = DateSerial(日期(2), 日期(3), 1)
- For Each E In Data.Columns(1).Offset(1).Cells '[A4]->
- If DateSerial(E, E.Cells(1, 2), 1) >= Day1 And DateSerial(E, E.Cells(1, 2), 1) <= Day2 Then
- If Rng Is Nothing Then '初次
- Set Rng = E.Resize(1, 4)
- Else '第二次以後
- Set Rng = Union(Rng, E.Resize(1, 4))
- End If
- End If
- Next
- Msg = 日期(0) & "/" & 日期(1) & " - " & 日期(2) & "/" & 日期(3)
- If Rng Is Nothing Then
- MsgBox Msg & "找不到 資料"
- Else
- Rng.Copy Sheets("查詢明細").Cells(Rows.Count, 1).End(xlUp).Offset(1)
- 'Rng 複製到 "查詢明細"A欄 最後一筆有資料的下一格 Offset(1)
- MsgBox Msg & " 找到 " & Rng.Count / Data.Columns.Count & " 筆資料"
- End If
- Unload Me
- End Sub
- Private Sub ComboBox1_Change()
- Check_日期
- End Sub
- Private Sub ComboBox2_Change()
- Check_日期
- End Sub
- Private Sub ComboBox3_Change()
- Check_日期
- End Sub
- Private Sub ComboBox4_Change()
- Check_日期
- End Sub
- Private Sub Check_日期() '判別 年月輸入
- Dim Msg As Boolean, E As Variant
- For Each E In 日期 '依序處裡: 年月的輸入
- If Not IsNumeric(E) Then '不是數字
- CommandButton1.Enabled = False '確定鈕控制項: 不可以使用
- Msg = True 'Msg設定為 True
- Exit For
- End If
- Next
- If Msg = False Then '日期皆為數字
- If DateSerial(日期(0), 日期(1), 1) <= DateSerial(日期(2), 日期(3), 1) Then
- 'DateSerial(年,月, 1)
- CommandButton1.Enabled = True '確定鈕控制項: 可以使用
- Else
- CommandButton1.Enabled = False '確定鈕控制項: 不可以使用
- End If
- End If
- End Sub
複製代碼 |
|