2017-09-07 46 views
0

我创建了一个脚本,在行的“ - ”行中隐藏了活动工作表中的行。我想将其应用于其他工作表(即Sheet-ABC,Sheet-DEF)。我尝试使用数组,但不成功。Excel VBA,更新特定工作表,不仅仅是活动工作表

任何帮助表示赞赏。

Sub hideRows() 
Application.ScreenUpdating = False 
Application.EnableEvents = False 
Application.Calculation = xlCalculationManual 
Application.DisplayAlerts = False 


Dim cell, cell2 As Range, hRws As Range 
Set Rng = Sheet15.Range("A52:L359") 

Rng.EntireRow.Hidden = False 

For Each cell In Range("A52:L359").SpecialCells(xlBlanks) 
If cell = "-" And cell.Offset(-1, 0) = "-" Then 
If hRws Is Nothing Then 
Set hRws = Range(cell, cell.Offset(1, 0)) 

Else 
Set hRws = Union(hRws, Range(cell, cell.Offset(1, 0))) 
End If 
End If 
Next 

If Not hRws Is Nothing Then hRws.EntireRow.Hidden = True 

Application.Calculation = xlCalculationAutomatic 
Application.DisplayAlerts = True 
Application.ScreenUpdating = True 
Application.EnableEvents = True 

End Sub 
+0

嗯 - 如果你是通过空白单元格循环,多少都会有'一个值“ - ”'? – YowE3K

回答

0

你可以在for循环中调用你的hideRows()方法。事情是这样的:

Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets hideRows() Next

+0

这将无法正常工作(a)直到'hideRows'中的问题得到解决(例如,它将行隐藏在一个工作表上,并将它们隐藏在可能不同的表单上,它循环遍历寻找“ - ”的空白单元格等) b)因为你不让'hideRows'知道要处理的工作表(c)OP只想处理某些工作表而不是所有的工作表(即它可能需要'For Each ws In ActiveWorkbook.Worksheets(Array( “Sheet-ABC”,“Sheet-DEF”))')。 – YowE3K

+1

好点的YowE3K,稍后会在我回家时尝试编辑。 – Kevin

+0

我试过YowE3K的建议没有成功。活动工作表是唯一受影响的工作表。 – user328533

相关问题