返回列表 上一主題 發帖

[發問] 如何利用迴圈或其他方式選取日期範圍自動輸入inputbox

回復 1# ten999
  1. Sub testCr()
  2. Dim selDate As String
  3.     selDate = InputBox("日期(格式為yyyy/mm/dd)" & "請輸入一個日期")
  4.     Do Until Not selDate Like "????/??/??"
  5.     saveCSVfmURL CDate(selDate)
  6.     selDate = InputBox("日期(格式為yyyy/mm/dd)" & "請輸入一個日期")
  7.     Loop
  8. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 6# ten999
這問題並沒甚麼大技巧
就單純使用INPUTBOX作為輸入起始日期與結束日期
用迴圈For....Next敘述
  1. Sub testCr()
  2. Dim selDate As Date,起始日期 as Date, 結束日期 as date
  3. 起始日期=inputbox("輸入起始日期")
  4. 結束日期=inputbox("輸入 結束日期")
  5. For selDate=起始日期 to 結束日期
  6. saveCSVfmURL selDate
  7. Next
  8. End Sub
複製代碼
學海無涯_不恥下問

TOP

本帖最後由 Hsieh 於 2011-7-19 14:12 編輯

回復 9# ten999

建議使用假期表列方式
判斷迴圈中變數 是否為假期表內日期
  1. Sub testCr()
  2. Dim selDate As Date, 起始日期 As Date, 結束日期 As Date, 假期
  3. 假期 = Array("01/01", "02/28", "04/05", "10/10")
  4. 起始日期 = InputBox("輸入起始日期")
  5. 結束日期 = InputBox("輸入 結束日期")
  6. For selDate = 起始日期 To 結束日期
  7. If Weekday(selDate, 2) <= 5 And IsError(Application.Match(Format(selDate, "mm/dd"), 假期, 0)) Then saveCSVfmURL selDate
  8. Next
  9. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 11# ten999
上班日、休假日在台灣實行的是有點亂
但是,就程式設計而言,當無規則可循時就用列表解決
那麼列表的格式就攸關城市運行是否順暢
不規則的條件要用列表的意義在於容易找出規則
但你的設計反而讓列表複雜,建議只用2欄位來記錄假日
  1. Sub testCr()
  2. Dim selDate As Date, 起始日期 As Date, 結束日期 As Date
  3. 起始日期 = InputBox("輸入起始日期", , 2001 / 12 / 29)
  4. 結束日期 = InputBox("輸入 結束日期", , Date)
  5. For selDate = 起始日期 To 結束日期
  6. If IsError(Application.Match(CDbl(selDate), Sheets("交易異動表").[A:A], 0)) Then
  7.    If Weekday(selDate, 2) < 6 Or IsNumeric(Application.Match(selDate, Sheets("交易異動表").[B:B], 0)) Then
  8.       saveCSVfmURL selDate
  9.    End If
  10. End If
  11. Next
  12. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題