Select 在工作表之间切换时特定列中的第一个空单元格

Select first empty cell in specific column when switching between worksheets

我有一个包含多个 sheet 的工作簿。 Sheet 1 使用单元格 A1 作为搜索框来查找书中的特定 sheet。 Sheet 1 之后的sheet 是这样命名的,SO123456,SO 后面有不同的数字。我在 sheet 1 上有以下代码,用于从输入到 Sheet 1 的 A1 中的值打开相应的 sheet:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range("A1"), Target) Is Nothing Then Exit Sub
Sheets(Target.Value).Activate
End Sub

当相应的 sheet 打开时,我想将它打开到 A 列中的下一个空单元格。我在 SOxxxxxx sheets 上有一些代码,当我的数据在 A 列中输入。这是代码:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Columns("A:A")) Is Nothing Then
         Target.Offset(0, 2).Value = Now
End If

End Sub

我不确定如何确保选中 A 列中的第一个空单元格或代码的位置; sheet 正在打开或调用的地方是打开sheet。我尝试在 Worksheet_Change 块下方输入以下代码,但没有成功:

Range("A" & Rows.Count).End(xlup).Offset(1).Row
Cells(Rows.Count,1).End(xlup).Offset(1).Row
UsedRange.Rows.Count

如果你还没有注意到,我对 VBA 几乎一无所知。

这应该会让您到达 A 列中的第一个空单元格

rowEmpty = Range("A" & 10000).End(xlup).Row +1

您可以将数字 10000 替换为足够大的数字,以确保那里没有数据。有其他替代方法,但我认为这个更容易开始。

使用此代码,在 sheet1 的单元格 A1 中键​​入 sheet 名称将激活您键入的 sheet,并且活动单元格将是第一个空白单元格A 列

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range("A1"), Target) Is Nothing Then Exit Sub
Sheets(Target.Value).Activate
ActiveSheet.Cells(Sheets(Target.Value).Range("A1").End(xlDown).Row + 1, 1).Select
End Sub

试试这个

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "A” Then Exit Sub
    With WorkSheets(Target.Value)
         .Activate
         .Cells(.Rows.Count,1).End(xlup).Offset(1).Select
    End With
End Sub