Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 提取消息框中的工作表名称列表,如果在多个工作表的for循环中条件为False_Excel_Vba - Fatal编程技术网

Excel 提取消息框中的工作表名称列表,如果在多个工作表的for循环中条件为False

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

我有一个vba代码,可以在多张图纸中循环。每个工作表都有一个“IF条件”&如果为true,则创建图表,否则循环到下一个工作表。执行此代码后,显示图纸名称的消息框会“逐个”弹出,其中IF条件失败。我需要两个留言框

  • 一个消息框,将所有工作表名称一个置于另一个之下,其中IF条件IF False
  • 类似地,在第二个msgbox中,我想得到一个表列表,其中IF为true,并且成功生成了图表 非常感谢您的帮助。谢谢

    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