作者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/cn.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