gpt4 book ai didi

excel - 检查工作表是否存在,如果不存在则创建 -VBA

转载 作者:行者123 更新时间:2023-12-04 12:11:45 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Test or check if sheet exists

(23 个回答)



Check if sheet exists

(4 个回答)


3年前关闭。




我已经测试了许多代码来检查工作表是否存在(基于名称),如果不存在则创建一个。其中一些循环所有工作表,一些引用工作表,如果创建错误意味着工作表不存在。哪种是最合适的 - 正统 - 更快的方式来完成这项任务?
目前我正在使用:

Option Explicit

Sub test()
Dim ws As Worksheet
Dim SheetName As String
Dim SheetExists As Boolean

SheetName = "Test"
SheetExists = False

With ThisWorkbook
'Check if the Sheet exists
For Each ws In .Worksheets
If ws.Name = SheetName Then
SheetExists = True
Exit For
End If
Next

If SheetExists = False Then
'If the sheet dont exists, create
.Sheets.Add(After:=.Sheets(.Sheets.Count)).Name = SheetName
End If
End With
End Sub

最佳答案

这就是我使用的。无需循环。直接尝试分配给一个对象。如果成功,则表示该工作表存在:)

Function DoesSheetExists(sh As String) As Boolean
Dim ws As Worksheet

On Error Resume Next
Set ws = ThisWorkbook.Sheets(sh)
On Error GoTo 0

If Not ws Is Nothing Then DoesSheetExists = True
End Function

使用
Sub Sample()
Dim s As String: s = "Sheet1"

If DoesSheetExists(s) Then
'
'~~> Do what you want
'
Else
MsgBox "Sheet " & s & " does not exist"
End If
End Sub

关于excel - 检查工作表是否存在,如果不存在则创建 -VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54823466/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com