返回列表 上一主題 發帖

拿取日期

本帖最後由 n7822123 於 2020-8-22 16:41 編輯

回復 1# mdr0465


這時候就要仔細閱讀 微軟給的使用說明了~

Excel 的篩選功能有限制,只能字串比對~~ 如下圖

所以不能日期/數字比對~




把日期格式改一下就好了,擷取你部分程式來說明

D1 = DateSerial(CInt(splitstr(2)), CInt(splitstr(1)), CInt(splitstr(0)))
S1$ = Format(D1, "dd/mm/yy")
Set xR = Range("GROUPING!A1:K10000")
With xR
    .AutoFilter
    .AutoFilter Field:=2, Criteria1:=S1
    Range("GROUPING!A1").CurrentRegion.Copy
    Sheets("DAILY SALES").Range("A1").PasteSpecial xlValues
    .AutoFilter
End With
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 3# mdr0465

因為我記得你的程式還有其他問題....................

我改了一些,已忘記改了哪些了,程式貼給你

輸入日期的時候不要輸入 雙引號 "

你自己比對吧~~程式如下


Sub Daily_Sales()
Dim xR As Range
Dim D1 As Date
Dim strformat As String
Dim splitstr() As String
Dim str As String
On Error Resume Next
Sheets("DAILY SALES").Range("A2:K1000").Clear
str = InputBox("Please Input The Date You Want to Search" & Chr(10) & Chr(10) & "Input Format ""DD/MM/YY""")
splitstr = Split(str, "/")
D1 = DateSerial(CInt(splitstr(2)), CInt(splitstr(1)), CInt(splitstr(0)))
S1$ = Format(D1, "dd/mm/yy")
Set xR = Range("GROUPING!A1:K10000")
With xR
    .AutoFilter
    .AutoFilter Field:=2, Criteria1:=S1
    Range("GROUPING!A1").CurrentRegion.Copy
    Sheets("DAILY SALES").Range("A1").PasteSpecial xlValues
    .AutoFilter
End With
Sheets("DAILY SALES").Activate
With Range([K2], [A65536].End(xlUp)) 'set borders
    .Borders.LineStyle = xlContinuous
    .Borders.Weight = xlThin
    .Borders.ColorIndex = xlAutomatic
    .Font.Size = 18
    .Font.Name = "Times New Roman"
    .HorizontalAlignment = xlCenter
    .EntireColumn.AutoFit
End With
k = 2  ' for exchange date format
Do Until IsEmpty(Cells(k, 2))
    Cells(k, 2).NumberFormatLocal = "dd""/""mm""/""yy;@"
    k = k + 1
Loop
Range("A1").Select
End Sub


檔案如下

樣辦.rar (45.49 KB)
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

        靜思自在 : 甘願做、歡喜受。
返回列表 上一主題