- 帖子
- 913
- 主題
- 150
- 精華
- 0
- 積分
- 1089
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- office 2019
- 閱讀權限
- 50
- 性別
- 女
- 註冊時間
- 2011-8-28
- 最後登錄
- 2023-7-19
 
|
13#
發表於 2021-4-9 23:26
| 只看該作者
回復 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 |
|