2017-08-09 82 views
2

有人能帮助我稍微调整这个所以它复制并粘贴刚才值的细胞,而不是公式?复制值,而不是公式

Set copyRange = wsInfoFrom.Range("A1:A" & lastrow) 
copyRange.SpecialCells(xlCellTypeVisible).Copy wsInfoTo.Range("A" & Rows.Count).End(xlUp).Offset(1, 0) 
Worksheets("View").Activate 

问候, 密尔

+0

感谢Gary的学生,我是新来这个网站,如果你没猜错的:) – Mils

+0

你miight寻找这个? - “https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-pastespecial-method-excel” –

+0

我希望你将能够使用'...。价值= ... .Value'但'.SpecialCells(xlCellTypeVisible)'复杂的事情,所以由德英阮答案(使用'wsInfoFrom'和'wsInfoTo',而不是'ActiveSheet')和里卡多·罗德里格斯很可能是最容易实现的。 – YowE3K

回答

1

先选择源范围 然后选择目标范围 集副本SC和PasteSpecial的目标范围,你去:d

Set copyRange = ActiveSheet.Range("A1:A" & lastrow) 
copyRange.SpecialCells(xlCellTypeVisible).Copy 
ActiveSheet.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues 
Worksheets("View").Activate 
+0

这正是我需要的,但我不得不去适应它从一个不同的表,而不是活动工作表提取数据。很多谢谢Mils – Mils

+0

:D,忘了更换纸张。我没有相同的工作簿,因此必须将该变量更改为活动工作表。很高兴听到这项工作。请查看评论中的技术细节链接。 –

2

像这样的东西应该工作

Sheets("Sheet1").Columns(1).Copy 
Sheets("Sheet2").Columns(2).PasteSpecial xlPasteValues 

不必在此刻脱颖而出提供给我,但我相信你会在使用PasteSpecial的你这样的例如:

wsInfoTo.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues 
+0

在我看来,这个话题想要将上面的行值复制到下面的行中。不是从A列到B列;)但是,这是接近的答案ANW –