gpt4 book ai didi

excel - 转到所选单元格后的第一个空单元格

转载 作者:行者123 更新时间:2023-12-03 02:48:12 27 4
gpt4 key购买 nike

我正在尝试实现一个代码,如果您单击某个单元格;您转到特定列中的第一个空单元格。

现在我有这个代码:

If Selection.Count = 1 Then
If Not Intersect(Target, Range("B2")) Is Nothing Then
Columns("E").Find(vbNullString, Cells(Rows.Count, "E")).Select
End If
End If

但是这段代码有一个问题:我希望它开始检查第一个空单元格;从第 3 行开始。我该怎么做?

编辑1:

我对代码做了一些调整以满足我的需要(为了实践和美观);

Dim lastCell As Range
Set lastCell = Range("E:E").Find(vbNullString, [E3], , , , xlNext)

lastCell.Interior.Color = RGB(100, 200, 100)
lastCell.Offset(0, -3) = "Last Cell -->"
lastCell.Offset(0, -3).Interior.Color = RGB(0, 110, 250)
lastCell.Offset(0, -3).Font.Color = vbWhite

If Not Intersect(Target, [B2]) Is Nothing Then
lastCell.Select

旁注向右偏移三列的原因是由于工作表的布局:)如果 LastCell 发生更改,我会清除其他位置的单元格和文本的格式。因此,如果有人感兴趣,请告诉我。

最佳答案

您可以像这样重写代码,只需提供 SearchDirection 参数即可。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Selection.Count = 1 Then
If Not Intersect(Target, Range("B2")) Is Nothing Then
Columns("E").Find(vbNullString, Cells(Rows.Count, "E") _
, , , , xlPrevious).Select
End If
End If
End Sub

或者你可以尝试这个:

编辑1:对于brettdj:)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

On Error Goto errhandler
Application.EnableEvents = False
If Target.Cells.Count = 1 Then
If Not Intersect(Target, [B2]) Is Nothing Then _
Range("E:E").Find(vbNullString, [E3], , , , xlNext).Select
End If
continue:
Application.EnableEvents = True

Exit Sub
errhandler:
MsgBox Err.Description
Resume continue

End Sub

除非 E3:E(x) 之间有空白单元格,否则这两个代码的工作方式相同。
您的修改代码引用最后一个非空单元格找到 E 列中的第一个空单元格。
下一个代码从字面上查找 E3 中的第一个空单元格。不知道哪个才是您真正需要的。

旁注:

Columns("E")Range("E:E") 相同。
那么为什么要使用 Range("E:E") 呢?嗯,Intellisense 是通过 Range 启动的,而不是通过 Columns 启动的。
因此,我更喜欢使用 Range,这样您就可以看到 .Find 方法的所有可用参数。

关于excel - 转到所选单元格后的第一个空单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23598422/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com