- 帖子
- 976
- 主題
- 7
- 精華
- 0
- 積分
- 1018
- 點名
- 0
- 作業系統
- Win10
- 軟體版本
- Office 2016
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2013-4-19
- 最後登錄
- 2025-1-10
|
8#
發表於 2022-8-11 07:49
| 只看該作者
你好,大大,謝謝你再次幫忙,好像差一點Sheet1 是資料來源,
當我在Sheet2 打上Job 和Line 後,Sheet2的 ...
stephenlee 發表於 2022-8-10 13:52 
是這樣嗎? 請測試看看,謝謝
Sub test()
Dim Arr, xD, T$, br, a1$, a2$, ky, i&
Set xD = CreateObject("Scripting.Dictionary")
Arr = Sheets(1).Range("a1").CurrentRegion
For i = 2 To UBound(Arr)
T = Arr(i, 1) & "|" & Arr(i, 2): xD(T) = Arr(i, 3)
Next
With Sheets(2)
Arr = .Range("a1").CurrentRegion
For i = 2 To UBound(Arr)
T = Arr(i, 1) & "|" & Arr(i, 2)
If xD.Exists(T) Then
Arr(i, 3) = xD(T)
Else
a1 = Split(Arr(i, 2), "-")(0): a2 = Split(Arr(i, 2), "-")(1)
For Each ky In xD.keys
If Split(ky, "|")(0) <> Arr(i, 1) Then GoTo 98
br = Split(Split(ky, "|")(1), "-")
If UBound(br) < 1 Then GoTo 98
If br(0) <= a1 And br(1) >= a2 Then Arr(i, 3) = xD(ky)
98: Next
End If
Next
.[a1].Resize(UBound(Arr), 3) = Arr
End With
End Sub |
|