- 帖子
- 254
- 主題
- 6
- 精華
- 0
- 積分
- 310
- 點名
- 0
- 作業系統
- W10
- 軟體版本
- Excel 2016
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2019-6-16
- 最後登錄
- 2024-9-23
|
13#
發表於 2021-1-22 00:11
| 只看該作者
回復 12# PJChen
Sub 預約更新_2()
Application.ScreenUpdating = False '關閉更新畫面
'把工作表的所有內容放到陣列
Arr = [說明!I2].CurrentRegion
Brr = [預約!A1].CurrentRegion
For X = 2 To UBound(Arr) '在陣列裡的第2列開始到最後一列
A = Arr(X, 1) & "-" & Arr(X, 4) '說明文字 帳號串聯日期
For Y = X To UBound(Brr) '在陣列裡的第2列開始到最後一列
B = Brr(Y, 2) & "-" & Brr(Y, 1) '預約文字 帳號串聯日期
If A = B And Brr(Y, 3) = "" Then K = 0 '如果說明文字與預約文字相同 且預約X列位的第3欄位沒有內容 K就等於0 表示沒有被比對過
If A = B And Arr(X, 4) <> "" And K <> 1 Then '如果說明文字的與預約文字相同 且說明X列位的第4欄位有內容 且K不等於1 表示沒有被比對過
K = 1 '表示已經被比對過
Cells(Y, 3) = Arr(X, 7) '把說明的預約板數放到預約工作表的單項取板欄位
Cells(Y, 7) = "#0000" & Arr(X, 5) '把說明的 "#0000"串聯取板編號 放到預約工作表的取板編號欄位
Exit For '跳到下一個迴圈
End If
Next Y
Next X
'D:F欄的公式值化 是因為 Brr = [預約!A1].CurrentRegion 的關係 所有內容放到陣列 或改成特定位置
'[預約!A1].Resize(UBound(Brr, 1), UBound(Brr, 2)) = Brr 因為沒有在陣列裡比對所以不需要
Brr指的是預約工作表比對後的內容
其實用字典方法會更好 但小弟還在學習中不太理解...有空還是會來看看大大們怎麼寫.順便學習^^"
Application.ScreenUpdating = True '開啟更新畫面
End Sub |
|