隐藏或取消隐藏Excel工作表,但公式应起作用

hwamh0ep  于 2022-12-19  发布在  其他
关注(0)|答案(3)|浏览(147)

我以前用过这种方法,但六个月后我就不能用了。
我创建了数据输入字段,通过这些字段,我使用按钮将数据从Sheet1移动到Sheet2。
我不希望用户看到Sheet2,这样他们就无法更改任何内容。我使用的是下面的公式。

Sheets("Data Sheet").Visible = True

Sheets("Data Sheet").Visible = False

隐藏工作表后我用密码保护它们。代码的主要优点是隐藏后我仍然可以将数据从Sheet1发布到Sheet2。
经过研究,我发现了另一个隐藏工作表的公式,但隐藏工作表2后,通过工作表1发布到工作表2(这是隐藏的)给出了一个错误。

ThisWorkbook.Worksheets(Array("Data Sheet")).Visible = xlSheetHidden

如何隐藏Sheet2并继续通过Sheet1过帐条目?

bf1o4zei

bf1o4zei1#

您可以操作隐藏工作表上的数据,而无需取消隐藏。
除非你想选择细胞,但你不应该这样做。
但是,如果单元格受保护,则需要在编辑工作表之前将其解锁。您可以将此操作作为过程的一部分。

Sheets("Data Sheet").Unprotect Password:="pass"
----
whatever code you have
----
Sheets("Data Sheet").Protect Password:="pass"

但是,您可能需要在其中进行一些错误处理,因为如果代码抛出错误,工作表将保持未锁定状态。

z9ju0rcb

z9ju0rcb2#

a)语句Sheets("Data Sheet").Visible = FalseThisWorkbook.Worksheets(Array("Data Sheet")).Visible = xlSheetHidden的作用基本相同。但是,您需要理解为什么对板材进行限定是重要的:ThisWorkbook.Worksheets将从代码所在的工作簿访问工作表,只写Sheets(或工作表)将访问ActiveWorkbook的工作表,而ActiveWorkbook可能是另一个工作表。在您的情况下,Array("Data Sheet")部分是不必要的(您可以传递一个工作表名称数组来同时隐藏多个工作表)。将可见性设置为xlSheetHiddenFalse是相同的。
B)隐藏工作表和保护工作表是两件不同的、独立的事情。你可以保护工作表但不隐藏它,你可以隐藏工作表但让它不受保护。
c)保护工作表的主要思想是只允许用户在特定单元格输入。用户可以更改工作表的内容,但只能更改未格式化为“锁定”的单元格。
d)如果您通过Excel保护工作表(无论是否隐藏),并希望通过代码修改某些内容,则需要取消保护(代码完成后重新保护)。但是,通过代码保护工作表时,您可以通过设置UserInterfaceOnly-参数来指定您希望允许代码进行修改:

Thisworkbook.Sheets("Data Sheet").Protect Password = "IWontTellYou", UserInterfaceOnly:=True

e)如果您永远不想显示工作表,请将可见性设置为 veryHidden,而不是 *hidden *。这样,在Excel中使用以下命令将无法使工作表可见:它不会列在“取消隐藏...”下-在这种情况下,不需要保护它。

Thisworkbook.Sheets("Data Sheet").Visible = xlSheetVeryHidden

(Note在这种情况下,您只能通过代码使工作表再次可见,但在即时窗口中使用一行代码就足够了)

pxyaymoc

pxyaymoc3#

您必须编写代码,首先取消对sheet2的保护,然后粘贴数据并再次保护sheet2。

相关问题