我有一张包含多张纸的工作簿。工作表1使用单元格A1作为搜索框来查找书中的特定工作表。 Sheet 1之后的纸张名称如此,SO123456在SO之后具有不同的数字。我在工作表1上有以下代码,用于从输入到工作表1的A1中的值打开相应的工作表:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range("A1"), Target) Is Nothing Then Exit Sub
Sheets(Target.Value).Activate
End Sub
当打开相应的工作表时,我想将其打开到A列中的下一个空单元格。我在SOxxxxxx工作表上有一些代码,当我在A列中输入数据时填充C列的时间。这是代码:
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列中的第一个空单元格或代码所在的位置;正在打开的工作表或打开工作表的电话。我尝试在Worksheet_Change块下面输入以下代码,但没有运气:
Range("A" & Rows.Count).End(xlup).Offset(1).Row
Cells(Rows.Count,1).End(xlup).Offset(1).Row
UsedRange.Rows.Count
如果你还没有注意到,我对VBA几乎一无所知。
答案 0 :(得分:0)
这会让你到达A列的第一个空单元格
rowEmpty = Range("A" & 10000).End(xlup).Row +1
您可以用足够大的数字替换数字10000,以确保那里没有数据。有替代方案,但我认为这个更容易开始。
答案 1 :(得分:0)
使用此代码,在sheet1的单元格A1中键入工作表名称将激活您键入的工作表,活动单元格将是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
答案 2 :(得分:0)
试试这个
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "A$1” Then Exit Sub
With WorkSheets(Target.Value)
.Activate
.Cells(.Rows.Count,1).End(xlup).Offset(1).Select
End With
End Sub