【问题标题】:Run Macro with out leaving page在不离开页面的情况下运行宏
【发布时间】:2015-02-24 03:22:01
【问题描述】:

我有一个复选框,选中后将运行此宏。该复选框位于 sheet1 中,它将隐藏 sheet2 中的第 11 行。如何编写此代码,这样我就不必在工作表之间来回切换?

Sub Hide_HeaterTreater_Rows()

  Sheets("NSR Report").Select
  Range("11:11").Select
If Selection.EntireRow.Hidden = False Then
  Selection.EntireRow.Hidden = True
Else
  Selection.EntireRow.Hidden = False
  End If

Sheets("NSR FORM").Select

End Sub

【问题讨论】:

标签: vba excel checkbox


【解决方案1】:

用复选框切换可见性似乎有点奇怪:我认为使用复选框的值来设置可见性会更好......

Sub Hide_HeaterTreater_Rows()
  With Sheets("NSR Report").Rows(11).EntireRow  
    .Hidden = Not .Hidden
  End With
End Sub

编辑:多行

Sub Hide_HeaterTreater_Rows()
  With Sheets("NSR Report").Range("11:11,24:24").EntireRow  
    .Hidden = Not .Hidden
  End With
End Sub

【讨论】:

  • 效果很好,谢谢!你能帮我理解你上面的解释吗?
  • 另外,您将如何编写它以便您可以隐藏多行而不会收到错误代码。例如第 14 行和第 24 行?
  • 它将 Hidden 属性设置为与其当前值相反的值(Not False = True,Not True = False)
【解决方案2】:
Sub Hide_HeaterTreater_Rows()
    Sheets("NSR Report").Rows(11).EntireRow.Hidden = Not Sheets("NSR Report").Rows(11).EntireRow.Hidden
End Sub

但我认为你可能想使用

Sub Hide_HeaterTreater_Rows()
    Sheets("NSR Report").Rows(11).EntireRow.Hidden = Sheets("NSR FORM").Shapes("CheckBox1").Value
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 2011-07-03
    相关资源
    最近更新 更多