excel - 复制粘贴整个表格
问题描述
我是 VBA 新手(也在 Stackoverflow 中),我需要帮助。我想复制一个包含许多数据的表并粘贴到另一本书(来自 D2 列)。
该表从 A 到 F,行是未知的,因为它们每天都在变化。
这是我的代码不起作用:
Windows(" PERIMETRE.xlsx").Activate
Range("A:F").Select
Selection.Copy
Windows("OP_COMMERCIALES.xlsm").Activate
Sheets("DETAIL").Select
Range("D2").Select
ActiveSheet.Paste
解决方案
无需选择或复制/粘贴。
首先,我建议将所有参数(如工作簿名称等)作为常量放在模块的标题中。这样更容易修复重命名等。
在您的复制例程中,您可以使用以下方法定义您的源范围currentregion
:
返回表示当前区域的 Range 对象。当前区域是由空白行和空白列的任意组合限定的范围。只读。(https://docs.microsoft.com/en-us/office/vba/api/excel.range.currentregion)
然后定义目标范围 - 它取决于源范围的大小。
最后将源范围的值写入目标范围(不选择、不复制、不粘贴)。重要提示:格式不传输
Option Explicit
Private Const wbSourceName As String = "perimetrie.xlsx"
Private Const numberOfColumnsToCopy As Long = 6 'A - F
Private Const wbTargetName As String = "OP_COMMERCIALES.xlsm"
Private Const wsTargetName As String = "DETAIL"
Private Const cellTarget As String = "D2"
Sub copyTable()
Dim wsSource As Worksheet
Set wsSource = Application.Workbooks(wbSourceName).Worksheets(1)
Dim wsTarget As Worksheet
Set wsTarget = Application.Workbooks(wbTargetName).Worksheets(wsTargetName)
Dim rgSource As Range
'assumption to use currentregion: continous range, no empty rows and columns in area to copy
Set rgSource = wsSource.Range("A1").CurrentRegion
'resize range to the necessary number of columns (A-F)
set rgSource = rgSource.Resize(ColumnSize:=numberOfColumnsToCopy)
Dim rgTarget As Range
Set rgTarget = wsTarget.Range(cellTarget)
'resize rgTarget according to dimensions of rgSource
With rgSource
set rgTarget = rgTarget.Resize(.Rows.Count, .Columns.Count)
End With
'write values from rgSource to rgTarget - no copy/paste necessary!!!
rgTarget.Value = rgSource.Value
End Sub
推荐阅读
- c# - C#检测windows重启和停止
- amazon-web-services - preactions":"truncate table 在glueContext.write_dynamic_frame.from_jdbc_conf 中不起作用
- firebase - Firebase Facebook 登录 ionic3
- python - PyQt5 错误显示 html: js: Uncaught ReferenceError: L is not defined
- php - OCI_INVALID_HANDLE 总是为 OCI-Lob::save() 返回
- laravel - laravel 5 中有没有办法手动决定分页数?
- powerbi - 报告的 PowerBI 行级安全性
- python-3.x - 使用多个 Python 版本启动 Spyder
- python-3.x - 在 Python 中将 S3 同步到本地目录
- flask - 错误:saml2.client_base:XML 解析错误:不适合我!!!在使用 haproxy 的 flask_saml 实现中