相同的Worksheet_Activate代码,但有不同的范围不工作在工作表2
首先,我对Excel和其他应用程序中使用的宏和vba一无所知。我从互联网复制并运行下面的代码在片材1为:相同的Worksheet_Activate代码,但有不同的范围不工作在工作表2
Option Explicit Private Sub Worksheet_Activate()
Dim r As Range, c As Range
Set r = Range("a129:a1675")
Application.ScreenUpdating = False
For Each c In r
If Len(c.Text) = 0 Then
c.EntireRow.Hidden = True
Else
c.EntireRow.Hidden = False
End If
Next c
Application.ScreenUpdating = True
End Sub
的代码在表1,但是相同的代码但具有不同的范围,即工作正常。 “a5:a100”对于工作表2不起作用。
我们是否需要停用工作表1的代码?
由于事先 问候, ID
回答:
您可以创建一个子这样的一个,并将其放置在一个标准的代码模块,例如Module1' (you will have to insert it: Right-click in the Project explorer while selecting the workbook's VBA project, select
插入and
Module`)。
Option Explicit Sub HideRows(Rng As Range)
Dim Ws As Worksheet
Dim R As Long
Application.ScreenUpdating = False
With Rng
Set Ws = .Worksheet
For R = 1 To .Rows.Count
Ws.Rows(.Row).EntireRow.Hidden = Not CBool(Len(.Cells(R)))
Next R
End With
Application.ScreenUpdating = True
End Sub
然后从所有工作表中调用相同的子文件受到影响,每个工作表都有一个不同的范围作为参数。
Option Explicit Private Sub Worksheet_Activate()
HideRows Range("A1:A1675")
End Sub
想法是该范围应该只有一列。如果您提供多列范围,则行的Hidden
状态将取决于每行中最后一个单元格的内容。
以上是 相同的Worksheet_Activate代码,但有不同的范围不工作在工作表2 的全部内容, 来源链接: utcz.com/qa/262277.html