用于隐藏表中行的 VBA 代码(听起来很复杂)

用于隐藏表中行的 VBA 代码(听起来很复杂)

最后一篇帖子已被删除——“之前被问过”——请阅读全文:)

基本上,我有一张大表格(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

相关内容