我正在尝试将一系列单元格粘贴到另一个工作表中。这是我到目前为止所想出的:
For i = 1 To MyCount
wbk.Activate
Set Criteria = Sheets(IGMSheet).Cells(i, 1)
Sheets(IGMSheet).Range(Cells(i, 2), Cells(i, 4)).Copy 'this copies the 3 cells I need
w.Activate
If ActiveSheet.AutoFilterMode Then ActiveSheet.ShowAllData 'remove autofilter
Selection.AutoFilter
Range("$A$1:$BM$204").AutoFilter Field:=2, Criteria1:=Criteria.Value
Range("$BC$1:$BE$204").SpecialCells(xlCellTypeVisible).PasteSpecial
Next i
如果我只是更新范围内的值,那么它可以工作,但粘贴单元格则不行。
请多多指教。
最佳答案
根据我上面的评论,尝试这个...
Dim rng As Range
For i = 1 To MyCount
wbk.Activate
Set Criteria = Sheets(IGMSheet).Cells(i, 1)
Set rng = Sheets(IGMSheet).Range(Cells(i, 2), Cells(i, 4))
w.Activate
If ActiveSheet.AutoFilterMode Then ActiveSheet.ShowAllData 'remove autofilter
Selection.AutoFilter
Range("$A$1:$BM$204").AutoFilter Field:=2, Criteria1:=Criteria.Value
rng.Copy
Range("$BC$1:$BE$204").SpecialCells(xlCellTypeVisible).PasteSpecial
Next i
我还注意到了一些其他事情。例如使用 .Activate
和不合格的单元格 Range(Cells(i, 2), Cells(i, 4))
您可能还想查看this
关于excel - 范围上的 PasteSpecial 方法失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18119144/