我正在使用Excel和VB制作一个工作表,该工作表可基于复选框隐藏信息行。我已经完成的工作是设置一列“ U”,以便显示是否选中了该框(是/否)。我需要创建一个宏,以便如果该框为假(未选中),它将被隐藏。这是我到目前为止的内容:
Sub HideCells()
If Range("U2").Value = "False" Then
Rows("2:2").EntireRow.Hidden = True
ElseIf Range("U2").Value = "True" Then
Rows("2:2").EntireRow.Hidden = False
End If
End Sub
现在这适用于单行,但是如何将范围从U2扩展到U2:U300?
谢谢。
答案 0 :(得分:0)
要从第二行到第300行进行基本循环,我们定义一个新变量I,该变量将保存当前值/行。然后,将行引用替换为值i并对其进行循环。
Sub HideCells()
Dim i As Long
For i = 2 to 300
If Range("U" & i).Value = "False" Then
Rows(i).EntireRow.Hidden = True
ElseIf Range("U" & i).Value = "True" Then
Rows(i).EntireRow.Hidden = False
End If
Next i
End Sub
答案 1 :(得分:0)
您可以将Emily的答案减少到一行。不要忘记关闭屏幕更新:
SELECT d.*
FROM (SELECT uid, COUNT(*) AS num_donations,
ROW_NUMBER() OVER (ORDER BY COUNT(*) DESC) as position
FROM donations
WHERE month = ? AND year = ?
GROUP BY uid
) d
WHERE uid = ?;
但是最快的方法是使用自动筛选。如果您有兴趣,我可以更新答案以包含此代码。