2016-08-18 158 views
-1

我想从一个工作表复制多行到另一个,我有一个工作表在A2行开始和结束于A108850数据,它开始于A2列并在I2列结束,我如何将所有数据复制到另一个工作表中,其中行以A4开头,列以A4开头,并以I4结束。Excel:复制并粘贴多个行和列从一个工作表到另一个

我怎么可能通过一些宏?

谢谢。

+0

你尝试过这么远吗? SO不是代码写入服务。看[如何提出一个好问题](http://stackoverflow.com/help/how-to-ask)。除此之外,我建议你尝试一下宏记录器,并按照你刚刚描述的那样进行手动描述,然后让代码执行此操作:) – DragonSamu

+0

我不会使用宏记录器来创建宏,因为性能较差。使用正确的代码将使宏成百上千(?)倍更快。 –

+0

@ErikBlomgren我也不会,但OP没有提供任何代码。因此,从宏记录器开始或尝试编码的东西是第一个开始,不提供OP与安装程序 – DragonSamu

回答

1

相应试试这个

Worksheets("Sheet1").Range("A2:I108850").Copy Worksheets("Sheet2").Range("A4") 

变化的范围内引用,工作表的名称。

1

复制&粘贴是一个“昂贵”的操作,更大的范围内,更昂贵的操作

你应该关注的只是值,你可以试试这个:

Worksheets("DestinationSheetName").Range("A2:I108850").Value = Worksheets("SourceSheetName").Range("A2:I108850").Value 

编辑在OP的评论之后

如果上次评论中的代码仅具有粘贴值的相同目标,则将第二条语句更改为以下内容:

With Worksheets("Sheet1").Range("A2:I108850") '<--| reference the "source" range you want to paste values from 
     .Range("A4").Resize(.Rows.Count, .Columns.Count).Value = .Value '<--| resize "destination" range accordingly to "source" one and paste values into it 
    End With 
当然,你必须检查工作表名称的

是有效的人对当前活跃工作簿

+0

我应该创建一个宏或在Microsoft VB模块中尝试脚本? – DevanDevak

+0

这段代码将被放置在一个“子程序”中,您可以在VBA模块中编写该子程序,并且最终通过将其关联到工作表按钮或按Alt-F8并从列表框中选择子程序名称 – user3598756

+0

我已经这样做了,但它给了我一个语法错误: Sub Copy() Worksheets(“Performance MMT”)。Range(“A2:I108850”)。Value = Worksheets(“Moscow”)。Range(“ A2:I108850“)。ValueWorksheets(”Sheet1“)。Range(”A2:I108850“)。Copy Worksheets(”Sheet1“)。Range(”A4“) End Sub – DevanDevak

相关问题