作者HugoStiglitz (needs no nick name)
看板Visual_Basic
標題[VBA ] range 比對
時間Mon Apr 13 16:19:00 2015
請問如果想要用 if 函數 來判斷兩個 range 有無完全一樣
要怎麼寫呢??
我想要知道在 B 欄中 哪些部份和 range(G1:G46)儲存格一樣
一樣的話 我需要相對應的C欄的值
我的想法是以46個儲存格為單位去比較
如果符合就在相對應的D欄旁邊打一個V記號 再用"篩選"就能找出來了
小弟的寫法如下
For i = 2 To 58666
j = i + 45
If Range(Cells(i, 2), Cells(j, 2)) = Range("G1:G46") Then
Range(Cells(i, 4), Cells(j, 4)).Value = "v"
End If
Next i
但是VBA一直告訴我型態不符合
問題可能出在 if 那行
但我查不到要怎麼做@@
請高手幫忙一下 感激不盡
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Visual_Basic/M.1428913145.A.BF0.html
※ 編輯: HugoStiglitz (114.39.19.43), 04/13/2015 19:12:59
1F:推 ClubT: Range可以這樣用 = 去比較嗎? 04/14 11:21
2F:→ ClubT: 而且你要比較的應該是Cells,而不是Range 04/14 11:22
3F:→ HugoStiglitz: 我用cells 解決了 那請問有比較快的寫法嗎 04/14 23:49
4F:→ HugoStiglitz: 謝謝C大 04/14 23:50
5F:推 hulapig: 如果不一定要用vba的話,可以在D欄打公式就好了 04/19 09:38
6F:→ hulapig: 試試=IF(ISNUMBER(MATCH(B1,$G$1:$G$46,0)),"v","") 04/19 09:41
7F:→ HugoStiglitz: 感謝樓上大大 我有想過要用IF +MATCH 04/20 11:48
8F:→ HugoStiglitz: 原來要搭配isnumber 04/20 11:49