在 Excel 中选择当前单元格旁边的单元格

在 Excel 中选择当前单元格旁边的单元格

我在 excel 中编写了一个小型 vba,将空白单元格的值更改为“无数据”。这是我到目前为止所做的:

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

我希望的是,每当我在表格中添加一条新记录并且其中包含一个空白单元格时,它应该立即更改为“无数据”值,然后选择应该在我修改的最后一个单元格的下一个单元格上。现在发生的情况是,在将空白单元格更改为我想要的值后,它会选择整个表格。请帮帮我!

答案1

您可以使用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

相关内容