⑴ excel中請用VBA提出兩列數據中相同的數來。
親,打開你的Excel文件,按「Alt+F11」打開VBA編輯窗口,然後在左側對應的Sheet上雙擊,右側空白處粘貼下面的代碼。關閉VBA窗口。然後按「Alt+F8」打開宏窗口,選擇剛插入的宏,點擊「執行」。
Subcz()
DimfAsRange:Dimi,nAsInteger
n=3357:Columns("D").NumberFormat="@"
Fori=3357To3343Step-1
Setf=Range("B3343:B3357").Find(Range("A"&i).Value)
IfNotfIsNothingThenRange("C"&n).Value=i:Range("D"&n).Value=Range("A"&i).Value:n=n-1
Next
EndSub
⑵ 求助!請高手賜教,我需要用一個VBA代碼實現兩列數據查重
Sub 重復判斷()
Dim i, j, k, n As Integer
Dim t, t1
i = 1
n = 1
Do While Cells(i, 3) <> "" '如果單元格,不為空,進入循環,注意C列不能右空單元格
t = Cells(i, 3) '取出C列單元格
j = Sheet1.Range("a65536").End(xlUp).Row '取出A最大非空單元格
For k = 1 To j '取出A列單元格,比例C列單元格數據,是否等於A列單元格
t1 = Cells(k, 1)
If t = t1 Then
Cells(n, 2) = t1 '如果重復,則對B列單元格賦值
End If
Next
If Cells(n, 2) = "" Then '上面只是判斷是否重復,並輸入了重復單元格,不重復,單元格就是空的
Cells(n, 2) = "不重復"
End If
n = n + 1
i = i + 1
Loop
End Sub
小白亂寫的
⑶ VBA用兩種方法找出兩列數據相同項
一種直接使用表格函數vlookup進行匹配
第二,可以使用字典進行匹配處理
第三,可以使用find函數進行查找匹配
第四,就是兩層for循環直接進行匹配
⑷ VBA中判斷單元格內容是否相同
用函數like
設定兩個變數a,b接收兩個單元格的數據,flag變數得到比較結果。
a=range("a1");b=a=range("b1")
flag=
a
like
b
如果flag=true,則表示兩個單元格數據相同;false值,數據不同。
⑸ Excel VBA如何標記重復出現的數據
插入一列C,全部向下應用填充數字1,再插入一列D2里寫公式:
=SUMIF($A2:A2,A2,$C2:C2)
然後篩選D2不是1的都是重復的項
⑹ 用VBA檢查EXCEL中兩列數據的重復數據
這個用2嵌套的循環來實現比對就可以了,A列第一個數據和B列第一個數據比對,
如果不重復就轉到B列第二個,如果重復了就轉到A列第二個,依次比對。大概十幾句代碼吧,添加一個按鈕: (假定數據從第二行開始)
Private Sub CommandButton1_Click()
ROW_A = 2: ROW_B = 2
ENDROW_B = [A65536].End(xlUp).Row
Do While Cells(ROW_A, 1) <> ""
Do While Cells(ROW_B, 2) <> ""
If Cells(ROW_A, 1) = Cells(ROW_B, 2) Then
Cells(ROW_B, 2).Interior.ColorIndex = 6
MsgBox ("B" & ROW_B & "行出現重復")
Exit Do
Else: If ROW_B = ENDROW_B Then
Exit Do
Else: ROW_B = ROW_B + 1
End If :End If
Loop
ROW_A = ROW_A + 1
ROW_B = 2
Loop
End Sub
⑺ VBA 判斷數據重復
有個取巧的手段。
客戶名稱在b列
可用
if application.countif(range("b1:b65536"),cells(4,2))>1 then
msgbox "有重復"
exit sub
else
r=range("b65536").end(3).row+1
range("a4:h4"). range("a"& r)
msgbox "添加成功"
end if
其他的你自己修改下
⑻ 如何用VBA檢查新的一組數據和舊的數據是重復的
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim tr, tc
tr = Target.Row
tc = Target.Column
If tr >= 1 And tc = 2 Then
x = tr Mod 2
y = WorksheetFunction.CountIf(Range("b:b"), Cells(tr - 1, 2))
Z = WorksheetFunction.CountIf(Range("b:b"), Cells(tr, 2))
If x = 0 And y >= 2 And Z >= 2 Then
Cells(tr, 2) = ""
Cells(tr - 1, 2) = ""
MsgBox "輸入的數據重復,被清除"
End If
End If
End Sub
試下