我想退出For Each Loop如果ClientWork **** =“”,然后也因为我们有一个嵌套的If语句在这个循环中调用一个函数,我会比如避免添加一个空白名称和没有数据的表单。所以这是我曾尝试,也发生了什么事我努力的结果:退出一个嵌套的if语句的每个循环
我有一个for each循环:
For Each q In Range(ClientWork****)
Sheets("Schedules").Activate
ClName = q.Value
TabName = ClName
和嵌套如果引用了一个名为“SheetExists”功能的语句:
If SheetExists(TabName) = False Then
'Add a new worksheet
Sheets.Add After:=Sheets(Sheets.Count)
'Set newSheet variable to the new worksheet.
Set NewSheet = ActiveSheet
NewSheetName = ClName
我想退出对于每一个循环,如果“ClientWork ****” =“”所以要为此下一步q声明我们刚才上面:
If ClientWork**** = "" then Exit For
认为它会绕过整个For Each循环。
我希望这会工作,但首先出现这个问题:
SheetExists是一个函数,当SheetExists = false,那么它返回,并增加了一个表,它做了很多更多。所以在SheetExists函数中,我的想法是确保它返回SheetExists = True。功能如下:
Function SheetExists(sheetName As String)
Dim Sheet As Worksheet
For Each sheet in Sheets
If sheet.Name = sheetName Then
SheetExists = True
Exit Function
else
SheetExists = False
End If
Next
End Function
好了,IF语句中的第一部分,我包括一个或参数:
If sheet.Name = sheetName OR sheetName = "" Then
SheetExists = True
Exit Function
在那会不会是添加名字空白的纸的希望。
没有快乐......它仍然添加一张纸张,即具有空白名称的纸张,然后在尝试格式化此纸张时认为存在要格式化的数据时会产生问题。
有什么建议吗?
谢谢@Todd ...我会试试这个。你是对的,NewSheetName = ClName,它是ClName,它是空白的。 – railsdancer
我刚刚运行了建议添加的代码,但它仍然添加了一个工作表ClName,它没有数据,因此它会在下游创建一个格式问题。无论如何谢谢托德。如果ClName是“”,我将编写一条If语句来分支这段代码。 – railsdancer