VBA切换工作表已禁用

时间:2016-09-28 12:32:22

标签: excel vba excel-vba

我用Battleships游戏创建了工作簿。整个"程序"效果很好。它的共享工作簿有2个工作表和每个工作表。它创建随机船只,标记命中/未命中并计算命中/未命中%。几乎完成了它,但我想进一步改进它。我的目标是创建不允许其他玩家进入我的战场并看到船只的代码。试图使用Deactivate模块和Application.ScreenUpdate = False,但当我点击另一张工作表或按住它时,我仍可以看到船只。

任何替代方案或想法?

2 个答案:

答案 0 :(得分:2)

您可以使用xlSheetVeryHidden属性,使用常规右键单击“工作表”选项卡(但仅限VBA代码)可以取消隐藏该属性。

下面的示例代码检查哪个用户名正在打开工作簿,并相应地隐藏或显示相关的工作表。

Private Sub Workbook_Open()

Select Case Environ("Username")
    Case "Me" ' modify to your PC username
        Worksheets("Sheet1").Visible = True
        Worksheets("Sheet2").Visible = xlSheetVeryHidden

    Case "Player"  ' modify to your opponent PC username
        Worksheets("Sheet1").Visible = xlSheetVeryHidden
        Worksheets("Sheet2").Visible = True
End Select

End Sub

答案 1 :(得分:0)

您是否尝试隐藏相关工作表? Application.ScreenUpdate = False只会阻止工作表更新单元格。