VBA自动识别且判断Excel表格最后两行的内容是否相同,相同的话删除最后一行,如何写代码?(VBA 判断两个单元格文本是否相同)
- VBA 判断两个单元格文本是否相同
- 在excel中用VBA写代码,怎样判断某一指定列内容是否重复??
- 请教,如何使用excel vba 确定单元格中重复内容的第一个和最后一个所在的行号?
- 如何用VBA删除表格中某列重复的的数据所在行,只留下其中一个即可。
VBA 判断两个单元格文本是否相同
if range("a1").value=range("b1").value then
或者
x=iif(cells(1,1).value=cells(1,2).value,"ok","no")
在excel中用VBA写代码,怎样判断某一指定列内容是否重复??
Sub s()
Set d = CreateObject("scripting.dictionary")
c = InputBox("请输入列标:")
n = Cells(Rows.Count, c).End(3).Row
For i = 1 To n
a = Cells(i, c).Text
If a <> "" Then
If d.exists(a) Then
MsgBox c & "列内容有重复!"
Exit Sub
Else
d.Add a, ""
End If
End If
Next
MsgBox c & "列内容无重复!"
End Sub
请教,如何使用excel vba 确定单元格中重复内容的第一个和最后一个所在的行号?
假定数据在A列,以下代码可行:
Sub 重复数据起止行号()
Dim Ra As Range
i = 1
For Each Ra In Range("A1", [a65536].End(3)).Offset(1)
If Ra <> Ra.Offset(-1) Then
j = Ra.Row - 1
If j > i Then
Ra.Offset(-1, 1) = j
Ra.Offset(i - j - 1, 1) = i
End If
i = j + 1
End If
Next
End Sub
如何用VBA删除表格中某列重复的的数据所在行,只留下其中一个即可。
用字典可以轻松快捷地实现去重的操作,代码如下:
Sub main()
Set dic = CreateObject("scripting.dictionary") '创建字典对象,并把字典对象赋给变量dic;这是最常用的一句代码,也就是所谓的“后期绑定”
For i = Range("B65536").End(3).Row To 1 Step -1 '从B列的最后一行到第一行依次递减,如果是从第一行到最后一行递增,则会因为删除行而跳过很多行,达不到去重效果
If dic.exists(Cells(i, "B").Value) Then '如果B列中的数据已经在字典中了(也就是重复了)
Rows(i).Delete '就删除这一行
Else
dic(Cells(i, "B").Value) = "" '否则就把B列的数据放入字典中
End If
Next i
End Sub