Попытка удалить значение из ячейки

#excel #vba

#excel #vba

Вопрос:

Попытка удалить («0.00») из ячейки в столбце P. Строка, которую я выделил, не работает?

 Sub Delete a Cell value

Dim rngToCheck As Range
Dim rng As Range
Set rngToCheck = ActiveSheet.Range("P13:P61")

For Each rng In rngToCheck
*If Cells = ("0.00") Then*
rng.Cells = Delete
End If

Next rng

End If
 

End Sub

Комментарии:

1. rng.cells = delete также проблематично.

2. Вы пытаетесь удалить ячейку и переместить другие ячейки? или удалить этот текст внутри ячейки? или удалить строки? просто очистить содержимое ячейки? должно ли совпадение относиться ко всей ячейке или только к ее части?

3. Попытка удалить текст внутри ячейки. Для сопоставления всей ячейки

Ответ №1:

Этот код vba работал с моей стороны. Обязательно используйте функцию .clear вместо .delete

Дайте мне знать, если это решит ваш вопрос или если есть что-то еще, с чем я могу помочь. Спасибо!

 Sub ClearCell()
  Dim rng As Range
  Dim i As Integer, counter As Integer

'RANGE TO EVALUATE
  Set rng = Range("P13:P61")

'initialize i to 1
  i = 1

 'Loop for a count of 1 to number of rows
   For counter = 1 To rng.Rows.Count

 'if cell i in the range contains value, delete cell, else increment i
   If rng.Cells(i) = "0" Then
       rng.Cells(i).Clear
   Else
       i = i   1
  End If
  Next
End Sub
 

Ответ №2:

Вы перепутали rng объект, когда внезапно изменили ссылку на Cells . Также End If слишком много. Проверьте фактическое значение вместо форматированного отображения. Присвоить Value значение пусто ("") , чтобы очистить содержимое.

 Sub DeleteACellValue()

    Dim rngToCheck As Range
    Dim cell As Range

    Set rngToCheck = ActiveSheet.Range("B7:B9")
    For Each cell In rngToCheck
        If cell.Text = "0.00" Then
            cell.Text = ""
        End If
    Next cell

'End If
End Sub
 

Комментарии:

1. В приведенном ниже коде должно быть 0 как 0.00, потому что s the way it форматирование s см. Ниже. Как только я пытаюсь использовать 0.00, он терпит неудачу.

2. Dim rngToCheck Как диапазон Dim cell как диапазон Set rngToCheck = ActiveSheet . Диапазон («P13:P61») для каждой ячейки в rngToCheck Если ячейка. Значение = «0.00», затем ячейка. Значение = Очистить конец, если следующая ячейка заканчивается, если End Sub

3. @user Было бы неплохо, если бы вы сказали, как «это не удается». В любом случае, я изменил его, чтобы проверять текст вместо значения. ОК?

4. Спасибо, это сработало. За исключением того, что мне нужно, чтобы все форматирование оставалось таким, каким оно было?

5. @user Итак, какое у вас там форматирование и как оно изменилось? Вы назначили cell.Text = "" , как я вам показал, или вы сделали cell.Clear ?