VBA将Excel的A1到N14的数据在保持行高和列宽下向下复制多次
时间: 2024-04-12 22:29:12 浏览: 157
非常抱歉,之前的回答有误。要在VBA中复制Excel的A1到N14范围的数据,并保持行高和列宽,可以使用以下代码:
```vba
Sub 复制数据()
Dim ws As Worksheet
Dim sourceRange As Range
Dim targetRange As Range
Dim i As Integer
' 设置源工作表和范围
Set ws = ThisWorkbook.Worksheets("Sheet1")
Set sourceRange = ws.Range("A1:N14")
' 设置目标工作表和范围
Set targetRange = ws.Range("A15:N28")
' 复制数据
For i = 1 To 5 ' 假设要复制5次
sourceRange.Copy
targetRange.PasteSpecial Paste:=xlPasteAll ' 复制所有内容(包括格式)
' 保持行高和列宽
sourceRange.Rows.RowHeight = targetRange.Rows.RowHeight
sourceRange.Columns.ColumnWidth = targetRange.Columns.ColumnWidth
Set targetRange = targetRange.Offset(14) ' 下移目标范围的位置
Next i
' 清除剪贴板内容
Application.CutCopyMode = False
End Sub
```
在这个示例代码中,我们使用了`Copy`和`PasteSpecial`方法来复制粘贴数据,并使用`xlPasteAll`参数来保留所有内容(包括格式)。然后,我们将源范围的行高和列宽设置为目标范围的行高和列宽。最后,我们使用Offset方法下移目标范围的位置,并重复复制粘贴过程。请确保将代码中的"Sheet1"替换为您要操作的实际工作表名称,并根据需要修改循环次数。
阅读全文