VBA根据选择和预定列选择筛选列表中的可见范围

时间:2018-06-13 16:32:04

标签: excel vba excel-vba

我认为有一个简单的解决方案,但我无法弄明白。

我有一个已过滤的列表,我试图复制并将我选择的可见行粘贴到另一个工作表。我在两个单独的块中粘贴,所以我不能一次粘贴整行。

Example Table

我正在使用这样的东西。我选择了几行,并且我想运行此宏来复制A1150:E1197,仅抓取可见行,然后复制F1150:L1197。如果它不需要E作为选择的列,那将是最好的。

我的初始设计使用了每个循环。对于每一行,它复制左侧块,切换到另一个工作表并粘贴,冲洗并重复右侧块。它最终变得非常缓慢,大约需要15秒才能达到10行左右。我相信在工作簿之间切换是减慢速度的主要部分,所以我现在试图一次性复制左右块。

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

感谢Marcucciboy2的建议。

以下是我用于复制左侧块的代码,然后是右侧块的不同列。

Private Function CopyBlocks()
Dim firstRow As Integer
Dim lastRow As Integer

firstRow = ActiveCell.row
lastRow = ActiveCell.row + Selection.Rows.Count - 1

'copy left block
Range("A" & firstRow, "E" & lastRow).SpecialCells(xlCellTypeVisible).Copy

'Switch workbooks & paste
'copy right block
'switch workbooks and paste

End Function