iT邦幫忙

0

VBA 比對 相符取代 不相符保留

Sub Ex()
Set d = CreateObject("Scripting.Dictionary")
With Sheets(2)
For Each a In .Range(.[A1], .[A65536].End(xlUp))
d(a.Value) = a.Offset(, 1)
Next
With Sheets(1)
For Each a In .Range(.[A1], .[A65536].End(xlUp))
a.Offset(, 3) = d(a.Value)
Next
End With
End With
End Sub

這是我搜尋到的程式碼,比對相符取代這點沒問題
但我想比對不相符的保留原本儲存格內的值,這點如何修改?
另外這是同一個活頁簿內比對,若是我想跨不同活頁簿比對又該如何修改呢?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2020-11-04 07:59:25
最佳解答

參考這個那個
改寫如下
試試看

For Each a In .Range(.[A1], .[A65536].End(xlUp))
    a.Offset(, 3) = d(a.Value)
Next

改成

For Each a In .Range(.[A1], .[A65536].End(xlUp))
    If d.Exists(a.Value) Then
        a.Offset(, 3) = d(a.Value)
    Else
        a.Offset(, 3) = a.Offset(, 1)
    End If       
Next

確實有保留著源儲存格資料!TK'S
但是海綿大,跨不同活頁簿比對又該如何修改呢?

race iT邦新手 5 級 ‧ 2020-11-05 10:13:31 檢舉

想跨不同的工作簿,需先了解如何開啟工作簿,
若要求多個或速度時,可以用ADO Object,但要了解SQL

我要發表回答

立即登入回答