vba - 如果工作表存在,则运行 sub。如果没有,显示消息并退出子

标签 vba excel boolean

尽管在其他线程上查找此主题,但我还是被卡住了。我需要以下帮助:

如果宏可以找到名为“Transfers”的工作表,我希望它激活该工作表并运行其余的子,这使得“Transfers”成为最后一个工作表。

如果它找不到名为“Transfers”的工作表,我想要它,所以发出一条消息(请确保您重命名了您的数据表:“Transfers”)并退出子。我下面的代码不起作用。

Sub Double_Transfer_Report()
Dim er As Boolean
er = False

On Error Resume Next
'Worksheets("Transfers").Activate
er = true

If er Then
MsgBox ("Please make sure that you renamed your data sheet : Transfers)
Exit Sub
End If

ActiveSheet.Move _
After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)

最佳答案

不要用错误对象做体操。只需通过循环检查工作表是否存在。

Sub Double_Transfer_Report()
    Dim found As Boolean

    found = SheetExists("Transfers")

    If Not found Then
        MsgBox "Please make sure that you renamed your data sheet : Transfers"
    Else
        ActiveSheet.Move After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
    End If
End Sub

Function SheetExists(strSheetName As String) As Boolean

    Dim wks As Worksheet

    For Each wks In ThisWorkbook.Worksheets

        If wks.Name = strSheetName Then
            SheetExists = True
            Exit Function
        End If
    Next

    SheetExists = False

End Function

关于vba - 如果工作表存在,则运行 sub。如果没有,显示消息并退出子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47190952/

相关文章:

delphi - Delphi中的 boolean 表达式求值顺序?

c# - 如何在 C# 互操作调用中从 C# 实例化数组中的 C 取回数据?

vba - 编辑公式时如何突出显示(其他工作表中的单元格)?

vba - 将表格复制到另一个工作表

excel - VBA - 使用当前选择作为范围对象

python - 如何使用 python 将 plotly graph 保存为 excel 工作表图像?

excel - 如何更改图表轴的字体?

if(flag) 和 if(flag !=0) 之间的编译时性能差异?

vba - 使用 VBA 更改 Excel 表单标签长度以匹配其文本的长度

c# - excel以编程方式获取范围