2016-06-24 2 views
0

То, что я пытаюсь сделать, это прохождение программы, чтобы найти определенное значение из столбца ячеек и посмотреть, совпадает ли оно с одной ячейкой после того, как я специально вставляю значение, и если есть совпадение удаляет связанную ячейку и ее ряд ячеек. Случается, что специальная часть вставки программы работает, но связанные ячейки не удаляются. Чтобы уточнить, я пытаюсь удалить всю строку из определенной колонки, основываясь на том, есть спичкуУдаление конкретных ячеек Excel

Dim j As Integer 
Dim i As Integer 
i = 2 
Dim Aud_Tot As Integer 
Aud_Tot = Application.InputBox("How big is your audit", , , , , , , 1) 
Do While True 
    If Cells(i, 1).Value <> "" And Not IsError(Cells(i, 2).Value) Then 
     Range(Cells(i, 1), Cells(i, 22)).Copy 
     Range(Cells(i, 1), Cells(i, 22)).PasteSpecial xlPasteValues 
     For j = 2 To Aud_Tot 
      If Cells(j, 24).Value = Cells(i, 2).Value Then 
       Range(Cells(j, 24), (Cells(j, 42))).ClearContents 
      End If 
     Next j 
     i = i + 1 
    Else 
     Exit Do 
    End If 
Loop 
+0

* удаление связанных ячеек не является * - что вы ожидаете от того, что этого не происходит? трудно помочь вам, когда неясно, каков ваш текущий результат по сравнению с ожиданием. Например, вы хотите удалить всю строку? Или вы просто хотите очистить содержимое ячеек от столбца 24 до столбца 42 для каждой строки в j? –

ответ

1

Это кажется, что вы хотите удалить строку, но вы только с помощью ClearContents. Для удаления вы можете изменить эту строку на Range(Cells(j, 24), (Cells(j, 42))).Delete Shift:=xlShiftUp, вы также можете использовать xlShiftToLeft.

Вы хотите удалить всю строку или номер у вас есть?

+0

Я просто хочу удалить определенный диапазон, я считаю, что удаление вообще не работает из-за того, как я выхожу из цикла While –

+0

. Тогда выше будет работать, вам просто нужно решить, в какую сторону вы хотите перейти после удаляя его. – tjb1