2016-06-21 5 views
3

В настоящее время я работаю над файлом Excel и добавил VBA. Я добавил кнопку на Лист1 со следующим VBA:Excel 2013 VBA Ошибка выполнения 13 Тип Несоответствие

Sub AddRow() 
Dim c, d As Range 
Set rng = ActiveSheet.Range("A1:A100") 
Set rng2 = Worksheets("Sheet2").Range("A1:A100") 
For dblCounter = rng.Cells.Count To 1 Step -1 
    Set c = rng(dblCounter) 
    If c.Value Like "XXXXXX" Then 
     c.EntireRow.Insert 
     For dblCounter2 = rng2.Cells.Count To 1 Step -1 
     Set d = rng2(dblCounter2) 
     If d.Value Like "YYYYYY" Then 
     d.EntireRow.Insert 
     End If 
     Next dblCounter2 
    End If 
Next dblCounter 
End Sub 

Целью кода является, чтобы добавить новую строку на Лист1 над ячейкой, содержащей «XXXXXX» и новую строку на Sheet2 выше клетку, содержащую «YYYYYY ». Добавлена ​​новая строка в Sheet1. Однако добавление новой строки на Sheet2 не делает. Я получаю ошибку «Ошибка Runtime Error 13 Type Mismatch» в If d.Value Like "YYYYYY" Then, но нет ошибки в If c.Value Like "XXXXXX" Then, и я не знаю почему. Заранее спасибо

+0

Посмотрите на ячейку, которая проходит испытания. является ли значение ошибкой? –

+0

Возможно ли, что «ГГГГ» не существует во 2-м листе? –

+0

'd' держит 100 ячеек? Можете ли вы «если» 100 ячеек за раз? – findwindow

ответ

0

попытаться изменить

   If d.Value Like "YYYYYY" Then 
        d.EntireRow.Insert 
       End If 

к этому

If Not IsError(d.Value) Then 
    If d.Value Like "YYYYYY" Then d.EntireRow.Insert 
End If 
Смежные вопросы