Vba:如何将可见线复制到另一张纸
您可以在 VBA 中使用以下语法仅将可见行从一张工作表复制到另一张工作表:
SubCopyVisibleRows ()
Dim sourceWS As Worksheet
Dim destinationWS As Worksheet
Set sourceWS = ThisWorkbook.Sheets(" Sheet1 ")
Set destinationWS = ThisWorkbook.Sheets(" Sheet2 ")
sourceWS.Range(" A1:D999 ").SpecialCells(xlCellTypeVisible).Copy
destinationWS.Cells(1, 1).PasteSpecial
Application.CutCopyMode = False
End Sub
这个特定的宏将复制Sheet1的A1:D999范围内的每个可见行,并将它们粘贴到Sheet2的单元格A1中。
注意: Application.CutCopyMode = False行指定在运行宏后应禁用剪切和复制模式。
以下示例展示了如何在实践中使用此语法。
示例:使用 VBA 将可见行复制到另一个工作表
假设表 1中有以下数据集,其中包含有关各种篮球运动员的信息:
现在假设我们对数据集应用一个过滤器,以仅显示球队名称等于 Mavs 或 Spurs 的行:
现在假设我们要使用 VBA 仅将可见单元格从Sheet1复制到Sheet2。
我们可以创建以下宏来执行此操作:
SubCopyVisibleRows ()
Dim sourceWS As Worksheet
Dim destinationWS As Worksheet
Set sourceWS = ThisWorkbook.Sheets(" Sheet1 ")
Set destinationWS = ThisWorkbook.Sheets(" Sheet2 ")
sourceWS.Range(" A1:D999 ").SpecialCells(xlCellTypeVisible).Copy
destinationWS.Cells(1, 1).PasteSpecial
Application.CutCopyMode = False
End Sub
当我们运行这个宏时,我们在Sheet2中收到以下输出:
请注意, Sheet1中可见的每一行都已复制并粘贴到Sheet2中。
注意#1 :我们在宏中使用xlCellTypeVisible来指定我们只想复制可见单元格。
注意#2 :您可以在此处找到 VBA Copy方法的完整文档。
其他资源
以下教程说明如何在 VBA 中执行其他常见任务: