【问题标题】:Hide sheet and go back to previous sheet button隐藏工作表并返回上一个工作表按钮
【发布时间】:2022-01-12 08:35:40
【问题描述】:

我想在我的工作簿上的每个工作表上添加一个按钮,以隐藏活动工作表并返回到上一个工作表。我已经尝试了以下代码,但它只能返回到上一张表。我对 VBA 不熟悉。

我应该如何修改代码,以便在返回之前隐藏活动工作表?

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    Set LstSht = Sh
End Sub


Public LstSht As Worksheet
Sub GoToLast()
    LstSht.Activate
End Sub

【问题讨论】:

  • 如果上一张表已经隐藏了怎么办?它应该激活左侧未隐藏的第一张纸还是忽略它?左边的床单用完了怎么办?
  • 我认为,当没有前一个或任何其他工作表时,可以选择一个基本工作表并使用“IF”语句激活它。但我不知道怎么做? :)

标签: excel vba button


【解决方案1】:

WorkSheet.Visible 属性控制它是否隐藏。这是有关如何使用它的 Microsoft 文档:https://docs.microsoft.com/en-us/office/vba/api/excel.worksheet.visible

【讨论】:

  • 感谢您的回答,但您能更具体一点吗?因为我真的不知道如何组合这些代码。我的工作簿上已经有另一个按钮,它使用以下代码隐藏工作表: Sub HideSht() ActiveWorkbook.Worksheets(ActiveSheet.Name).Visible = False End Sub
  • 您有一个隐藏工作表的Sub,以及一个激活您感兴趣的工作表的Sub;好的。你现在需要做的就是打电话给这两个Subs,你应该得到你想要的。
  • 我做到了,但是子隐藏了工作表并且没有转到上一个工作表,因为现在隐藏的工作表是上一个工作表,我猜 :)(它会自动进入下一个工作表)。当我更改被调用的 subs 的顺序时,它会先转到上一张表,然后将其隐藏。这让我发疯 :)) 非常感谢你的帮助,但我想我今天要放弃了
【解决方案2】:

对于那些关注这个问题的人;我解决了我的问题,对我的代码进行了一些修改,如下所示:1- 转到上一个工作表,2- 隐藏上一个工作表(第二步是之前隐藏活动工作表,现在是上一个工作表)。

你可以试试这个:

在本工作簿中;

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
        Set LstSht = Sh
    End Sub

在模块中;

Public LstSht As Worksheet
Private Sub GoToLast()
        LstSht.Activate
End Sub

Private Sub HidePrvSht()
ActiveWorkbook.Worksheets(LstSht.Name).Visible = False
End Sub

Sub HideNGo()
Call GoToLast
Call HidePrvSht
End Sub

特别感谢 TehDrunkSailor :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-24
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多