这是我的问题的简化版本。 我正在使用宏将 A1:A10 中的一系列医生姓名复制到多个其他工作表。 我粘贴到的一些工作表具有隐藏行,因此并非所有 10 个粘贴的名称都是可见的。 例如,当我将 10 个姓名粘贴到隐藏了第 3 行和第 4 行的工作表 2 中时,医生 3 和医生 4 不可见。 这是一些代码:
Sub Macro1()
Range("A1:A10").Copy
Sheets("2").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("3").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
这是工作表 2 粘贴后的样子:
我需要宏在粘贴 10 个名称时跳过隐藏行,以便它们全部可见。我无法在任何地方找到答案。谢谢。
将此代码放置在工作表的代码模块中要复制的数据所在的位置。 新的子程序检查目标工作表行的隐藏状态,并仅将源列复制到可见单元格。
Sub Macro1()
'Range("A1:A10").Copy
Sheets("sheet3").Select
ActiveSheet.Range("A1").Select
with_hidden_rows
'ActiveSheet.Paste
Sheets("sheet4").Select
ActiveSheet.Range("A1").Select
with_hidden_rows
'ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
Sub with_hidden_rows()
Dim rows As Long
Dim rng As Range
Set rng = Range("A1:A10") 'the column to copy
rows = rng.rows.Count
rowpointer = 1
For i = 1 To rows
Do While ActiveSheet.Cells(rowpointer, ActiveCell.Column).rows.Hidden = True
rowpointer = rowpointer + 1
Loop
ActiveSheet.Cells(rowpointer, ActiveCell.Column) = Cells(i, rng.Column)
rowpointer = rowpointer + 1
Next i
End Sub