Excel 提取消息框中的工作表名称列表,如果在多个工作表的for循环中条件为False
我有一个vba代码,可以在多张图纸中循环。每个工作表都有一个“IF条件”&如果为true,则创建图表,否则循环到下一个工作表。执行此代码后,显示图纸名称的消息框会“逐个”弹出,其中IF条件失败。我需要两个留言框Excel 提取消息框中的工作表名称列表,如果在多个工作表的for循环中条件为False,excel,vba,Excel,Vba,我有一个vba代码,可以在多张图纸中循环。每个工作表都有一个“IF条件”&如果为true,则创建图表,否则循环到下一个工作表。执行此代码后,显示图纸名称的消息框会“逐个”弹出,其中IF条件失败。我需要两个留言框 一个消息框,将所有工作表名称一个置于另一个之下,其中IF条件IF False 类似地,在第二个msgbox中,我想得到一个表列表,其中IF为true,并且成功生成了图表 非常感谢您的帮助。谢谢 Sub DemandSupply() Dim WS_Count As Integer Dim
Sub DemandSupply()
Dim WS_Count As Integer
Dim I As Integer
Dim ChrtObj As ChartObject
Dim chtobj As ChartObject, srs As Series
Dim txtBox As String
WS_Count = ActiveWorkbook.Worksheets.Count
txtBox = WS_Count - 3
For I = 4 To WS_Count
Sheets(I).Activate
If Cells(11, 2).Value > 0 Then
'My code for generating charts
Else: MsgBox "Sub-block " & ActiveSheet.Name & " has no legal supply!"
End If
Next I
MsgBox "Yay! It's done!"
End Sub
请尝试以下代码:)
我认为除0以外的任何数值都算作真值,因此只要
如果sh.Cells(11,2)那么也可以工作。我想还不太清楚。非常感谢JC……为我工作。我保留了通过工作表索引的工作表循环,因为我不想要前3个工作表的图表。太好了!很高兴帮助你
Sub DemandSupply()
Dim WS_Count As Integer
Dim I As Integer
Dim ChrtObj As ChartObject
Dim chtobj As ChartObject, srs As Series
Dim txtBox As String
Dim true_msg As String
Dim false_msg As String
Dim sh As Variant
For Each sh In Sheets
If sh.Cells(11, 2).Value > 0 Then
'My code for generating charts
true_msg = true_msg & sh.Name & vbNewLine 'IF is true and charts generated successfully.
Else
false_msg = false_msg & sh.Name & vbNewLine 'IF Condition if False
End If
Next sh
MsgBox "List of sheet condition True:" & vbNewLine & true_msg 'adapt the message
MsgBox "List of sheet condition False :" & vbNewLine & false_msg 'adapt the message
End Sub