我以前用过这种方法,但六个月后我就不能用了。
我创建了数据输入字段,通过这些字段,我使用按钮将数据从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过帐条目?
3条答案
按热度按时间bf1o4zei1#
您可以操作隐藏工作表上的数据,而无需取消隐藏。
除非你想选择细胞,但你不应该这样做。
但是,如果单元格受保护,则需要在编辑工作表之前将其解锁。您可以将此操作作为过程的一部分。
但是,您可能需要在其中进行一些错误处理,因为如果代码抛出错误,工作表将保持未锁定状态。
z9ju0rcb2#
a)语句
Sheets("Data Sheet").Visible = False
和ThisWorkbook.Worksheets(Array("Data Sheet")).Visible = xlSheetHidden
的作用基本相同。但是,您需要理解为什么对板材进行限定是重要的:ThisWorkbook.Worksheets
将从代码所在的工作簿访问工作表,只写Sheets
(或工作表)将访问ActiveWorkbook的工作表,而ActiveWorkbook可能是另一个工作表。在您的情况下,Array("Data Sheet")
部分是不必要的(您可以传递一个工作表名称数组来同时隐藏多个工作表)。将可见性设置为xlSheetHidden
或False
是相同的。B)隐藏工作表和保护工作表是两件不同的、独立的事情。你可以保护工作表但不隐藏它,你可以隐藏工作表但让它不受保护。
c)保护工作表的主要思想是只允许用户在特定单元格输入。用户可以更改工作表的内容,但只能更改未格式化为“锁定”的单元格。
d)如果您通过Excel保护工作表(无论是否隐藏),并希望通过代码修改某些内容,则需要取消保护(代码完成后重新保护)。但是,通过代码保护工作表时,您可以通过设置
UserInterfaceOnly
-参数来指定您希望允许代码进行修改:e)如果您永远不想显示工作表,请将可见性设置为 veryHidden,而不是 *hidden *。这样,在Excel中使用以下命令将无法使工作表可见:它不会列在“取消隐藏...”下-在这种情况下,不需要保护它。
(Note在这种情况下,您只能通过代码使工作表再次可见,但在即时窗口中使用一行代码就足够了)
pxyaymoc3#
您必须编写代码,首先取消对sheet2的保护,然后粘贴数据并再次保护sheet2。