Excel VBA循环用于行

标签 excel vba

我想问一下如何在下面简化我的 VBA 代码。
是否可以通过使用“循环”来实现?谢谢 :)

例如(但不起作用):

Dim i As Integer

For i = 0 To 6

If Range("A126+i").Value = "" Then
Rows("127+i:129").EntireRow.Hidden = True

Else

Rows("127:128+i").EntireRow.Hidden = False

End If

我的代码:
If Range("A120").Value = "" Then                       
    Rows("121:126").EntireRow.Hidden = True
    Else
    Rows("121:122").EntireRow.Hidden = False
End If

If Range("A121").Value = "" Then
   Rows("122:126").EntireRow.Hidden = True
    Else
    Rows("122:122").EntireRow.Hidden = False
End If

 If Range("A122").Value = "" Then
    Rows("123:126").EntireRow.Hidden = True
    Else
    Rows("122:123").EntireRow.Hidden = False
End If

  If Range("A123").Value = "" Then
    Rows("124:126").EntireRow.Hidden = True
    Else
    Rows("122:124").EntireRow.Hidden = False
End If

If Range("A124").Value = "" Then
    Rows("125:126").EntireRow.Hidden = True
    Else
    Rows("122:125").EntireRow.Hidden = False
End If

If Range("A125").Value = "" Then
    Rows("126:126").EntireRow.Hidden = True
    Else
    Rows("122:126").EntireRow.Hidden = False
End If

最佳答案

这应该使您的初始循环正常工作:

Public Sub TestMe()

    Dim i As Long

    For i = 0 To 6
        If Range("A" & 126 + i).Value = "" Then
            Rows(127 + i & ":129").EntireRow.Hidden = True
        Else
            Rows("127:" & 128 + i).EntireRow.Hidden = False
        End If
    Next i

End Sub

这个想法是正确连接范围。它们包含字符串和整数值。因此A & 126+i应该是 "A" & 126 + i .或者你甚至可以省略条件并用更少的行来做:
Public Sub TestMe()
    Dim i As Long
    For i = 0 To 6
        Rows(127 + i & ":129").EntireRow.Hidden = CBool(Range("A" & 126 + i) = "")
        Rows("127:" & 128 + i).EntireRow.Hidden = CBool(Range("A" & 126 + i) = "")
    Next i
End Sub

关于Excel VBA循环用于行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49510084/

相关文章:

vba - 如果公式结果为 0,则将单元格留空

vba - 使用 Microsoft Word 导入样式

java - 雅各布 : calling vb function in Excel file without invoking "Open" statement

vba - Excel VBA 使用外部宏创建嵌入宏

c# - 将许多 excel 图表作为链接粘贴到 Word

excel - 有谁知道如何执行水平 xlookup

excel - 如果匹配项突出显示值 VBA,则识别单词

sql - 如何从 Excel VBA 脚本调用 Oracle 存储过程?

php - 将 JSON 字符串或数组转换为 Excel 文件?

excel - 从单元格 VBA excel 获取显式工作表超链接