#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
?