我在1个Excel工作簿中有4个工作表。我试图将Sheet1,Sheet2和Sheet4存储在数组中。然后,我希望程序隐藏第8行中值不为“ FY”的数组中的所有列。这样做的目的是能够轻松查看FY行,并使Sheet3不会隐藏任何列。
这是我的代码段:
Sub FY_HIDE222()
Dim keyCells As Range
Dim ws As Variant
ws = Array("Sheet1", "Sheet2", "Sheet4")
For Each sh In ws
For Each keyCells In ws.Range("C8:ZZ8").Cells
If keyCells.Value <> "FY" Then
keyCells.EntireColumn.Hidden = True
End If
Next keyCells
Next sh
End Sub
我在此行收到语法错误:
For Each keyCells In ws.Range("C8:ZZ8").Cells
说“ keyCells =无” ...请协助我进行思考,因为我认为keyCells变量应存储FY,Q1,Q2等。
变量`sh仅获取字符串值,而不是Worksheet对象。尝试
Sub FY_HIDE222()
Dim keyCells As Range
Dim wsName As Variant
Dim ws As Worksheet
wsName = Array("Sheet1", "Sheet2", "Sheet4")
For Each sh In wsName
Set ws = ThisWorkbook.Sheets(sh)
For Each keyCells In ws.Range("C8:ZZ8").Cells
If keyCells.Value <> "FY" Then
keyCells.EntireColumn.Hidden = True
End If
Next keyCells
Next sh
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句