我在 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