最后一篇帖子已被删除——“之前被问过”——请阅读全文:)
基本上,我有一张大表格(500 行),我只需要根据某个单元格中的值显示行数(如果该单元格中的值为 123,则仅显示前 123 行)。这是表格前 25 行的图片
我想实现这个没有编写 500 个“if”语句,如下所示:
Private Sub PG1(ByVal Target As Range)
If .Range("A1").Value = "123" Then
Rows("124:500").EntireRow.Hidden = True
End If
If .Range("A1").Value = "124" Then
Rows("125:500").EntireRow.Hidden = True
End If
End Sub
谢谢你!
答案1
这应该可行。从t()
技术上讲,你可以用 来调用它。我不知道你需要目标引用来做什么,但这对我来说是有效的。
Sub t()
PG1 (Worksheets("Sheet1").Range("A1"))
End Sub
Private Sub PG1(ByVal target As Range)
' Why do you need `target` at all?
Dim lastRow As Long
With Worksheets("Sheet1") ' CHANGE AS NEEDED
lastRow = .Range("A1").Value
.Range("A1:A" & lastRow).EntireRow.Hidden = False
.Range("A" & lastRow + 1 & ":A500").EntireRow.Hidden = True
End With
End Sub
这也不是相对的,它假设您的表格实际上是按行排列的1:500
。
答案2
Private Sub PG1(ByVal Target As Range)
.Range("A" & .Range("A1").Value & ":A500").EntireRow.Hidden = True
End Sub