运行macros后隐藏行“取消隐藏”

我有一个工作表,其中行2是隐藏的。 一个macros粘贴到这一行。 每当我运行这个macros,隐藏的行重新出现。

有没有办法防止行重新出现?

这是我的代码,它仍然是取消隐藏第2行

Sub Update2029()

Dim LSearchRow As Integer Dim LCopyToRow As Integer Dim LSearchValue As String On Error GoTo Err_Execute Application.ScreenUpdating = False LSearchValue = InputBox("Please enter a serial number to search for.", "Enter value") 'Start search in row 5 LSearchRow = 5 'Start copying data to row 2 in "Master" (row counter variable) LCopyToRow = 2 While Len(Range("A" & CStr(LSearchRow)).Value) > 0 'If value in column A = LSearchValue, copy entire row to "Master" If Range("A" & CStr(LSearchRow)).Value = LSearchValue Then 'Select row in "Master" to copy Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select Selection.Copy 'Paste row into "Master" in row 2 Sheets("Master").Select Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select ActiveSheet.PasteSpecial End If LSearchRow = LSearchRow + 1 Wend 'Position on cell A3 Application.CutCopyMode = False Range("A3").Select MsgBox "All matching data has been copied to 2029." Exit Sub 

Err_Execute:MsgBox“发生错误”。 表(“主”)。行(“2:2”)。EntireRowHidden = True ApplicationScreenUpdating = True

 End Sub 

这取决于你如何粘贴在那一行。

如果你这样做

  Sheet1.Rows(2).Copy Sheet2.Rows(5) 

第5行隐藏,粘贴后将取消隐藏。 这是因为第5行inheritance了第2行的属性。

如果你使用粘贴特殊,那么它不会。 看到这个例子

  Sheet1.Rows(2).Copy Sheet2.Rows(5).PasteSpecial xlValues 

如果你想做PasteAll(场景1),那么你将不得不隐藏行,否则继续第二段代码。

假设要隐藏的行位于名为“Sheet1”的工作表上,以下代码行将隐藏该行:

 Sheets("Sheet1").Rows("2:2").EntireRow.Hidden = True 

在没有看到你的代码的情况下,我们不知道是什么让Row2显示。 但是如果你不想实际解决问题的原因就不能显示,你可以这样做:

在macros的开始处插入Application.ScreenUpdating = false

然后在macros的末尾插入这个工作表的实际名称replace[SheetName]:

 Sheets("[SheetName]").Rows("2:2").EntireRow.Hidden = True Application.ScreenUpdating = true 

这样,在更新屏幕之前,行会再次隐藏,而且它将会像从未发生过一样。