vba - 激活工作表 1,否则激活另一个工作表

标签 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).Sheets("Tab1").Select    
Else    
    Workbooks(wkbk_Record).Activate
    Workbooks(wkbk_Record).Sheets("Tab2").Select

最佳答案

考虑到您采取SheetExists从这里 - Test or check if sheet exists这是可行的:

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

关于vba - 激活工作表 1,否则激活另一个工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50931286/

相关文章:

java - Apache poi xlsx 的生成速度因图像较多而变慢

vba - 调试VBA,查找问题和故障排除方法

excel - 查找 Excel 工作表中最后一条彩色线

Excel 比较两列并突出显示重复项

java - Apache POI Excel 行和列索引

excel - 嵌套的 IF/AND 语句

string - Excel VBA - 删除最多*单词*的字符串内容

algorithm - 游泳混合泳接力时间模拟算法

vba - 如何在Excel VBA中锁定行之间

vba - 如果在VBA中使用 “if statement”,则不会发生任何错误,请跳过代码