返回列表 上一主題 發帖

[發問] 由小而大改為由大而小的語法研習。

[發問] 由小而大改為由大而小的語法研習。

TEST_0914.rar (227.47 KB)
將下列的搜尋開啟排序~以由小而大(順序)改為由大而小(倒序)。
請問語法要如何編寫?
謝謝!


Private Sub CommandButton1_Click()
Dim Path$, xD1, A, Ar(1 To 5000, 1 To 2), Ar1(), Arr, Brr(1 To 7), Crr, xD, T%, i&, j&, k&
Application.DisplayAlerts = False: Application.ScreenUpdating = False
Set xD = CreateObject("Scripting.Dictionary")
Set xD1 = CreateObject("Scripting.Dictionary")
fileOrg = ActiveWorkbook.Name
Tm = Timer
Nrange = InputBox("請輸入DATA!的開獎期數", "輸入期數")
num = "100" 'InputBox("請輸入效果檔A︰H複製的期距數範圍", "輸入距期數")
Order = "0" ' InputBox("請輸入增加的邏輯條件條件之起迄序號", "輸入序號(1~99)或不增加(按Enter)")
Ncount = "1" ' InputBox("請輸入驗證版的連續次數", "輸入次數(1~10)")
Sheets("DATA").[L1:L4] = ""

Set fs = CreateObject("Scripting.FileSystemObject")
A = ThisWorkbook.Path     '每個資料夾名稱裝入Ar
Set f = fs.GetFolder(A)
Set fc = f.SubFolders
For Each f1 In fc
    n = n + 1: Ar(n, 1) = f1.Path
    Ar(n, 2) = Split(Split(f1.Name, "_")(4), "-")(0): xD1(Ar(n, 2)) = 1
Next

For Each Ky In xD1
    For x = 1 To n          '開啟Ar,找同類型資料夾,檔名有"機"裝入Ar1
        If Ar(x, 2) = Ky Then
            Set f = fs.GetFolder(Ar(x, 1))
            Set fc = f.Files
            For Each f1 In fc
                If InStr(f1.Path, "機") Then
                    ReDim Preserve Ar1(n1)
                    Ar1(n1) = f1.Path: n1 = n1 + 1
                End If
            Next f1
        End If
    Next x
    C = 13
    If n1 > 0 Then
        For i1 = 0 To n1 - 1  '開啟Ar1,copy A、B欄資料到Sheet1 M欄開始往右
            Set WB = Workbooks.Open(Ar1(i1))
            With Sheets(1)
                If .FilterMode Then .ShowAllData
                .Range("a1:b" & .[a65536].End(3).Row).Copy Workbooks(fileOrg).Sheets("Sheet1").Cells(1, C)
                 C = C + 2
            End With
            WB.Close
        Next
    End If

'.................................................................................................................

回復 22# samwang
測試結果 : 完全符合需求
萬分感激您的耐心指導和熱心幫忙~感恩

TOP

回復 21# ziv976688

如果前3大的比對數字不變(即不包括"0"),但前3小的比對數字改為有包括"0",
請教:前3小比對的新語法要如何編寫?
>> 如附件,請測試看看,謝謝

H_搜尋(統)字檔(主檔_前3小的比對數字包括0)_0922.zip (41.71 KB)

TOP

本帖最後由 ziv976688 於 2021-9-22 13:59 編輯

回復 18# samwang
語法研習:前3小的比對數字有包括"0"

實在是不好意思~有個語法變化,懇請您再賜教~
如果前3大的比對數字不變(即不包括"0"),但前3小的比對數字改為有包括"0"
請教:前3小比對的新語法要如何編寫?
詳如範例檔:7前3大&小_0_1894期_2個_1次(需求效果檔)
謝謝您

前3小的比對數字有包括0_0922.rar (216.95 KB)

TOP

回復 19# samwang
測試結果 : 完全符合需求
非常謝謝您的指導和幫忙~感恩

TOP

回復 16# ziv976688


請問:H_搜尋(統)字檔(主檔_顯示數值)_0917_samwang是否能~如同H_搜尋(機)字檔(主檔)_0917_samwang~
一樣都適用於測試_1894(單層=0000)和測試_1894(雙層=0000+0000)?
>> 不知18#的程式碼是否有解決此問題? 請測試看看,謝謝

TOP

回復 16# ziv976688


再以H_搜尋(統)字檔(主檔_顯示數值)_0917_samwang執行後~
在程式碼列68會產生偵錯~詳如圖片。
>> 已更新如附件,請再測試看看,謝謝   

H_搜尋(統)字檔(主檔_顯示數值)_0922.zip (44.77 KB)

TOP

本帖最後由 ziv976688 於 2021-9-19 14:19 編輯

補充~
測試_1894(單層=0000)內的H_搜尋()字檔(主檔)_0917_samwang和H_搜尋()字檔(主檔_顯示數值)_0917_samwang
測試_1894(雙層=0000+0000)內的H_搜尋()字檔(主檔)_0917_samwang和H_搜尋()字檔(主檔_顯示數值)_0917_samwang
是相同的

TOP

回復 14# samwang
不好意思,有個小問題,請您指教~謝謝您!

當資料夾名稱=7C_0_1894期_100_1845-1893_10+1796-1892_10_1次_1-49內的各檔案:
以H_搜尋()字檔(主檔)_0917_samwang執行~產生下列共5個的有()關鍵字的檔案~
7_0_1894期_100_1889_2個_1次~7統_0_1894期_100_1893_2個_1次

再以H_搜尋()字檔(主檔_顯示數值)_0917_samwang執行後~
產生7前3大&小_0_1894期_5個_1次的效果檔是OK的。
EX:附件範例~測試_1894(雙層=0000+0000)
測試_1894(雙層=0000+0000).rar (302.5 KB)

當資料夾名稱= 7C_0_1894期_100_1874-1893_10_1次_1-49內的各檔案:
以H_搜尋()字檔(主檔)_0917_samwang執行~產生下列共5個的有()關鍵字的檔案~
7統_0_1894期_100_1889_1個_1次~7統_0_1894期_100_1893_1個_1次

再以H_搜尋()字檔(主檔_顯示數值)_0917_samwang執行後~
在程式碼列68會產生偵錯~詳如圖片。

EX:附件範例~測試_1894(單層=0000)
測試_1894(單層=0000).rar (229.94 KB)

綜上所述:
H_搜尋()字檔(主檔_顯示數值)_0917_samwang都是以各有()關鍵字檔案的第5段數字作搜尋邏輯
且各被搜尋檔案的B:E欄格式都相同。

請問:H_搜尋()字檔(主檔_顯示數值)_0917_samwang能~如同H_搜尋()字檔(主檔)_0917_samwang~
一樣都適用於測試_1894(單層=0000)和測試_1894(雙層=0000+0000)?

如果為~
請問:測試_1894(單層=0000)的H_搜尋()字檔(主檔_顯示數值)_0917_samwang應該如何修正?

以上  懇請賜教!  謝謝您

TOP

回復 14# samwang
samwang大大 :
測試結果 : 完全符合需求
萬分感激您肯跟題耐心指導和熱心幫忙~受惠良多~感恩

TOP

        靜思自在 : 一個人的快樂.不是因為他擁有得多,而是因為他計較得少。
返回列表 上一主題