返回列表 上一主題 發帖

[發問] 請修正Sheets("Sheet1")改變格式後的語法。

本帖最後由 ML089 於 2021-10-12 23:13 編輯

回復 3# ziv976688

測試結果 :  7S_搜尋(統)字檔(主檔)_1011.rar (42.55 KB)
總次數和個數加總的前三大數字都OK!
但~
總次數的次小和三小的數字是顯示在"最小(第7列)"和"次小(第8列)"
個數加總的次小和三小的數字是顯示在"最小(第18列)"和"次小(第19列)"
即二個三小(列9和列20)是空白的。


1        B2        最大                B37        最大
2        B3        次大                B38        次大
3        B4        三大                B39        三大
4        B5        合計                B40       
5        B6        空格                B41        最小
6        B7        最小                B42        次小
7        B8        次小                B43        三小
8        B9        三小                B44       
資料 B2:B9 與 B37:B44 位置不一致,最小、次小、三小 錯開一列,程式並未處理這差異,當然有錯誤
下列 ai 與 ci 是相對連動,這樣會造成 最小、次小、三小 錯開一列

    Crr = .Range("c2:ay9"): Arr = .Range("c37:ay" & R): n = 0
    'cR = Array("", 1, 2, 3, 6, 7, 8)
    CR = Array(1, 2, 3, 6, 7, 8)
    For Each ci In CR: For cj = 1 To UBound(Crr, 2)
        For aii = ci To UBound(Arr) Step 17
            If ci < 6 Then ai = aii Else ai = aii + 1
            If Arr(ai, cj) = "" Then GoTo 97
            Crr(ci, cj) = Crr(ci, cj) + Arr(ai, cj)
97:     Next aii: n = 0
    Next cj: Next ci
下段也需要改
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 15# ziv976688

If ci < 6 Then ai = aii Else ai = aii + 1
有2處要改為
If ci < 6 Then ai = aii Else ai = aii - 1

要對接 37 38 39 41 42 43
CR = Array(1, 2, 3, 6, 7, 8) 的位置對應是 C欄位的 列 2 3 4 7 8 9 資料
C欄位的 列 37 38 39 41 42 43的位置對應順序是  Array(1, 2, 3, 5, 6, 7)
可見有誤差
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

        靜思自在 : 是非當教育,讚美作警惕。
返回列表 上一主題