返回列表 上一主題 發帖

[發問] 取出包材"+"or"-"號之後的數值

回復 10# PJChen

不過我並不要這個原程式操作,希望有人可以幫忙看看,卡了很多天了....
    包材報表_取出最後一個正負號的值.rar (47.94 KB)

TOP

回復 11# PJChen

有空幫我試試看 是不是你要的

包材報表_取出最後一個正負號的值0409.rar (56.12 KB)

TOP

回復 12# 軒云熊
謝謝熊大,
稍微修改後,截取資料正確,請問:
1) 我不想關閉來源檔Workbooks("包材報表.xlsx").Close False,但會無法執行,且每執行一次就增加二欄,原因是什麼?
2) 是否因為這個For I = 1 To 2: Columns(4).Insert , 2: Next I,為什需要增加2欄呢?
3) 我沒看過這種寫法,範圍為何是倒著寫呢?Arr = Range("AK11:C2").FormulaR1C1Local
4) 能否幫忙註解程式的意思?
感激不盡....

Range("E16:AJ25").ClearContents
    Workbooks.Open ThisWorkbook.Path & "\" & "包材報表.xlsx"
    For I = 1 To 2: Columns(4).Insert , 2: Next I
    Arr = Range("AK11:C2").FormulaR1C1Local
    Workbooks("包材報表.xlsx").Close False
    Brr = Range("B16:AJ25")
   
    For X = 1 To UBound(Arr, 1)
        For Y = 1 To UBound(Brr, 1)
            If Trim(Arr(X, 1)) = Trim(Brr(Y, 1)) Then
                 For E = 1 To UBound(Arr, 2)
                    If Arr(X, E) Like "*-*" Then
                        G = Split(Arr(X, E), "-")(1)
                        Brr(Y, E) = "=-" & G
                    ElseIf Arr(X, E) Like "*+*" Then
                        G = Split(Arr(X, E), "+")(1)
                        Brr(Y, E) = "=+" & G
                    End If
                Next E
            End If
        Next Y
    Next X

      Range("B16:AJ25") = Brr

TOP

回復 13# PJChen
把Brr(Y, E) = "=-" & G
跟Brr(Y, E) = "=+" & G
改成Brr(Y, E+2) = "=-" & G
在把插入欄删除

TOP

本帖最後由 軒云熊 於 2021-4-10 21:00 編輯

回復 13# PJChen
這是參考 jcchiang 前輩的寫法所修改的  感謝 jcchiang 前輩的提點
已加入註解 有稍微修改過 有空再幫我試試看 感謝

包材報表_取出最後一個正負號的值0410.rar (40.7 KB)

TOP

        靜思自在 : 慈悲沒有敵人,智慧不起煩惱。
返回列表 上一主題