Excel获取运行时错误13:types不匹配
得到这个错误:
Sub Namecheck() Dim FirstName As Range, LastName As Range, fnamex As Range Dim LNCount As Double Dim lname As Variant, fname As Variant, lname2 As Variant Dim i As Integer, p1 As Integer i = 1 Set FirstName = ThisWorkbook.Sheets(Sheet1).Range("B2:B47175") Set LastName = ThisWorkbook.Sheets(Sheet1).Range("C2:C47175") For Each lname In LastName i = 1 + i LNCount = Application.WorksheetFunction.CountIf(LastName, lname) If LNCount > 2 Then p1 = 1 fname = cell.Offset(0, -1).Value Set fnamex = FirstName.Find(what:=fname, Lookat:=xlWhole) If Not fnamex Is Nothing Then ActiveCell.Cells = fnamex.Address lname2 = cell.Offset(0, 1).Value If lname2 = lname Then ActiveCell.Interior.ColorIndex = 36 End If End If End If Next End Sub
有任何想法吗?
非VBA解决scheme。
使用条件格式 :
步骤1:
select整个列B:C
(如果您只想对一列进行着色,则只select它,例如selectB
列仅高亮显示名字)。 使用选定列转到条件格式 – >新规则。
第2步:
select使用公式检测要格式化的单元格 ,inputformula =COUNTIFs($B:$B,$B1,$C:$C,$C1)>1
并select所需的格式。 按OK。
结果:
VBA解决scheme
Sub Namecheck() Dim lastrow As Long Dim rng As Range Dim lname As Range With ThisWorkbook.Sheets("Sheet1") lastrow = .Cells(.Rows.Count, "B").End(xlUp).Row Set rng = .Range("B2:C" & lastrow) End With For Each lname In rng.Columns(2).Cells If Application.CountIfs(rng.Columns(2), lname, rng.Columns(1), lname.Offset(, -1)) > 1 Then lname.Interior.ColorIndex = 36 'change color of lastname lname.Offset(, -1).Interior.ColorIndex = 36 'change color of firstname End If Next End Sub