1

Я делаю небольшой VBA в Excel, которые меняют значение пустых ячеек на "NO DATA". Это то, что я сделал до сих пор:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo hell:
Application.Goto reference:="DBtable"
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.SpecialCells(xlCellTypeBlanks).Value = "NO DATA"

'I DON'T KNOW WHAT TO PUT HERE

hell:
End Sub

Я хотел бы, чтобы каждый раз, когда я добавлял новую запись в свою таблицу, и она содержала пустую ячейку, она должна быть немедленно изменена со значением "NO DATA", а затем выбор должен быть в следующей ячейке последней клетку я модифицировал. Что происходит сейчас, так это то, что после изменения пустой ячейки на значение, которое я хочу, она выбирает всю таблицу. Пожалуйста, помогите мне!

1 ответ1

0

Вы можете использовать Range.Offset для перемещения выделения, также вы можете улучшить свой текущий код (в настоящее время он ищет всю таблицу для пустых ячеек, а не только новую запись.

Улучшенный код:

Private Sub Worksheet_Change(ByVal Target As Range)

    On Error GoTo Hell

    ' whenever I add a new record on my table and it contains a blank cell, 
    ' it should be changed immediately with the "NO DATA" value:
    Intersect(Target.EntireRow, Range("DBTAble")).SpecialCells(xlCellTypeBlanks).Value _ 
         = "NO DATA"

    '  then the selection should be on the next cell of the last cell I modified:
    Target.Offset(0, 1).Activate

    Exit Sub    

Hell:
    Err.Clear
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .