相同的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

回到顶部