- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
6#
發表於 2014-4-3 16:45
| 只看該作者
回復 5# mfsong - Option Explicit
- Sub Ex()
- Dim Mydate As Double, d As Integer, Rng As Range, A As Range, yy As Integer, i As Integer, k As Integer
- d = InputBox("輸入基準日", , 13)
- Set Rng = UsedRange.Columns(1)
- For yy = Year([B1]) To Year([B1].End(xlToRight)) '年度
- For i = 1 To 12 '月份
- For k = d To 1 Step -1 '往前找日期
- Mydate = DateValue(yy & "/" & i & "/" & k)
- If IsNumeric(Application.Match(Mydate, Rows(1), 0)) Then
- Set A = UsedRange.Columns(Application.Match(Mydate, Rows(1), 0))
- GoTo 10
- End If
- Next
- For k = d + 1 To Day(DateAdd("m", 1, DateValue(yy & "/" & i)) - 1) '往後找日期
- Mydate = DateValue(yy & "/" & i & "/" & k)
- If IsNumeric(Application.Match(Mydate, Rows(1), 0)) Then
- Set A = UsedRange.Columns(Application.Match(Mydate, Rows(1), 0))
- GoTo 10
- End If
- Next
- 10
- If Not A Is Nothing Then Set Rng = Union(Rng, A)
- Set A = Nothing
- Next
- Next
- Rng.Select '選取資料範圍
- End Sub
複製代碼 |
|