Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.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 我想将多张图纸设置为宏的范围_Excel_Vba - Fatal编程技术网

Excel 我想将多张图纸设置为宏的范围

Excel 我想将多张图纸设置为宏的范围,excel,vba,Excel,Vba,我想在宏开始时以及宏不工作时设置多个sheetssheet1、sheet2 Private Sub Workbook_Open() 'Dim ws As Worksheet: Set ws = Sheets("sheet1","sheet2") If Range("W6").Value = 0 Then Call HideFG Else Call HideF End If End Sub 我猜对你的意思了吗 Private Sub Wor

我想在宏开始时以及宏不工作时设置多个sheetssheet1、sheet2

Private Sub Workbook_Open()
'Dim ws As Worksheet: Set ws = Sheets("sheet1","sheet2")
    If Range("W6").Value = 0 Then
        Call HideFG
    Else
        Call HideF
    End If
End Sub

我猜对你的意思了吗

Private Sub Workbook_Open()

Dim i As Long
    For i = 1 To ThisWorkbook.Sheets.Count
        With ThisWorkbook.Sheets(i)
            If .Range("W6").Value = 0 Then
                Call HideFG
            Else
                Call HideF
            End If
        End With
    Next

End Sub

您似乎试图将多张图纸收集到一个参考中:

Set ws = Sheets("sheet1","sheet2")
您几乎可以通过以下方式完成此操作:

Sheets(Array("sheet1","sheet2"))
但是,你必须一次只在一张纸上工作。。因此,您需要像这样使用它:

For Each ws In Sheets(Array("sheet1", "sheet2"))

    If ws.Range("W6").Value = 0 Then
        Call HideFG
    Else
        Call HideF
    End If

Next

您想设置多张图纸是什么意思?它不起作用也从来没有太大的帮助-你能详细说明吗?在第二行中,最初我只有sheet1,它没有问题。我在第二张纸上加了,这样它也可以运行IF-ELSE,但是宏IF-ELSE不起作用。我不知道为什么…您的代码没有引用工作表。是否要检查sheet1和sheet2中W6的值?我想同时参考这两个值!回答得很好。只是为了好玩,如果ws.[W6]=0,那么也可以: