vba 把一个sheet里的数据复制到另一个sheet,并加上一列,这列为复制前数据的行数
时间: 2024-09-24 15:15:21 浏览: 37
在VBA (Visual Basic for Applications) 中,你可以使用 `Range.Copy` 和 `Sheet.Range.PasteSpecial` 方法以及 `Application.CutCopyMode = False` 来实现从一个工作表 (`Sheet1`) 复制数据到另一个工作表 (`Sheet2`) 并添加新列的功能。这里是一个简单的示例:
```vba
Sub CopyDataWithRowNum()
' 设置源范围和目标范围
Dim srcRange As Range
Set srcRange = Sheet1.Range('A1:D10') ' 假设你想复制 A1 到 D10 区域的数据
Dim destRange As Range
Set destRange = Sheet2.Range("E1") ' 新建 E1 作为第一行
' 添加复制次数列
Dim newRowNum As Long
newRowNum = 1 ' 初始值,每次复制后加一
' 开始复制并追加行数
Application.CutCopyMode = True ' 先进入剪切模式
For Each cell In srcRange.Cells
destRange.Offset(0, newRowNum).Value = newRowNum ' 将当前行数写入新列
destRange.Value = cell.Value ' 复制数据到目标单元格
newRowNum = newRowNum + 1
Next cell
Application.CutCopyMode = False ' 结束剪切模式
End Sub
```
这个宏会在每行数据复制完成后,在目标工作表的对应位置自动增加一行,并记录下原始行的顺序。
阅读全文