Vba 激活工作表1,否则将激活另一张工作表
嗨,我试图通过添加if语句来修改以下两行代码,但没有成功。有人知道为什么吗Vba 激活工作表1,否则将激活另一张工作表,vba,excel,Vba,Excel,嗨,我试图通过添加if语句来修改以下两行代码,但没有成功。有人知道为什么吗 Workbooks(wkbk_Record).Activate Workbooks(wkbk_Record).Sheets("Tab1").Select 下面的问题是什么?多谢各位 If SheetExists("Tab1", Workbooks(wkbk_Record)) Then Workbooks(wkbk_Record).Activate Workbooks(wkbk_Record).S
Workbooks(wkbk_Record).Activate
Workbooks(wkbk_Record).Sheets("Tab1").Select
下面的问题是什么?多谢各位
If SheetExists("Tab1", Workbooks(wkbk_Record)) Then
Workbooks(wkbk_Record).Activate
Workbooks(wkbk_Record).Sheets("Tab1").Select
Else
Workbooks(wkbk_Record).Activate
Workbooks(wkbk_Record).Sheets("Tab2").Select
考虑到您从这里获取
表单存在
,这是一个有效的方法:
Sub TestMe()
If SheetExists("Tab1") Then
Sheets("Tab1").Select
ElseIf SheetExists("Tab2") Then
Sheets("Tab2").Select
Else
MsgBox "No Sheet"
End If
End Sub
Function SheetExists(shtName As String, Optional wb As Workbook) As Boolean
Dim sht As Worksheet
If wb Is Nothing Then Set wb = ThisWorkbook
On Error Resume Next
Set sht = wb.Sheets(shtName)
On Error GoTo 0
SheetExists = Not sht Is Nothing
End Function
或者,如果你想看到你的同事发疯,就这样写:
Sub ActivateTab2OrTab1()
On Error Resume Next
Sheets("Tab2").Select
Sheets("Tab1").Select
End Sub
您是否有
SheetExists
的代码?如果正确,则不能结束?是的,“如果SheetExists(“Tab1”,工作簿(wkbk_记录))”在.OP之前被使用了大约20行-这是一个很好的机会来学习如何设置工作表变量,而不是选择。谢谢你的评论。所以我可以在另一个已经存在的“Sub”下使用“Sub”?谢谢@BurtBee,是的,如果你已经用End Sub
结束了之前的Sub
例程(哦,好吧,这是嵌入在一个很长的Sub中的,所以我可能无法单独使用它来处理另一个Sub),或者你能解释一下为什么我的代码不起作用吗?我以为我只是稍微修改了一下。谢谢