gpt4 book ai didi

vba - 循环工作簿时无法获得正确的工作表名称

转载 作者:行者123 更新时间:2023-12-02 21:04:38 24 4
gpt4 key购买 nike

我正在尝试通过检查工作表名称来从多个工作簿收集数据。但是,当我运行代码来检查工作表名称(即原始数据)时,我得到了错误的结果。该代码仅返回 Sheet1 和 Sheet2。下面是代码:

Function WorksheetRAWExists(wsName As String) As Boolean

Dim ws As Worksheet
Dim ret As Boolean

ret = False
wsName = UCase(wsName)
For Each ws In ThisWorkbook.Sheets
If UCase(ws.Name) = "RAW DATA" Then
ret = True
Exit For
End If
Next
WorksheetRAWExists = ret

End Function

最佳答案

发生这种情况是因为您在 for-each 中循环遍历“ThisWorkbook”,它始终检查您运行 VBA 代码的工作簿中的工作表集合。

如果您希望循环遍历所有打开的工作簿中的所有工作表,那么您可以执行如下操作:

Sub test()
Dim wbk As Workbook, ws As Worksheet

For Each wbk In Workbooks
For Each ws In wbk.Worksheets
MsgBox ws.Name
Next ws
Next wbk

End Sub

编辑:

您还可以将工作簿名称或索引(或工作簿引用本身)传递给您的函数,并检查工作簿集合中的特定引用,以防循环遍历所有打开的工作簿不是您想要的。

关于vba - 循环工作簿时无法获得正确的工作表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46156634/

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