несоответствие типов при ссылке значения ячеек на значения в другом листе - PullRequest
0 голосов
/ 30 мая 2019

Я хочу удалить всю строку, если значение в столбце B (лист «Track») совпадает со значением в столбце B (лист «Active»).Но ошибка времени выполнения 13 (несоответствие типов) всегда возникает, хотя оба значения, на которые я ссылаюсь, имеют строковый тип

Вот код:

Sub delete_row()
Dim active As Worksheet: Set activeSH = ThisWorkbook.Sheets("Active")
Dim Tracksheet As Worksheet: Set KPI = ThisWorkbook.Sheets("Track")
Dim i As Integer
Dim name As String

    With Tracksheet
         For i = .Cells(.Rows.Count, 1).End(xlUp).Row To 4 Step -1
         name = .Range("B" & i).Value 

            'Here I loop through each value in col B of Track sheet 
            'and reference it to values in col B of sheet "active"       
            If name = active.Range("B:B").Value Then 'this line where run time error 13 (type mismatch occurs)

                .Rows(i).EntireRow.Delete

            Else
            End If
        i = i - 1
        Next i
    End With
 End Sub

Я действительно ценю вашу помощь!

1 Ответ

1 голос
/ 30 мая 2019

Вы можете попробовать что-то вроде этого:

Sub delete_row()

Dim active As Worksheet
Dim Tracksheet As Worksheet
Dim i As Integer
Dim name As String
Dim cl As Range

Set active = ThisWorkbook.Sheets("Active")
Set Tracksheet = ThisWorkbook.Sheets("Track")

    With Tracksheet

         For i = .Cells(.Rows.Count, 1).End(xlUp).Row To 4 Step -1

                 name = .Range("B" & i).Value

                    For Each cl In active.Range("B1:B100")

                        If name = cl.Value Then

                            .Rows(i).EntireRow.Delete

                        End If

                    Next cl

                    i = i - 1

        Next i

    End With

 End Sub

Вы можете изменить диапазон B1: B100 согласно вашему требованию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...