【发布时间】:2020-05-29 12:43:05
【问题描述】:
我正在使用 vba 在 2 个 Excel 工作簿之间复制数据:
- 数据源(复制自):工作簿 x,“等候名单”表。
- 数据目标(粘贴到):工作簿 y,“所有年份数据”表。
这已成为一个问题,因为在我要粘贴数据的目标工作表上的工作簿 y 中,我添加了帮助列来帮助我的数据过滤。但是,现在当我将数据(使用 vba 自动)从源工作表复制并粘贴到目标工作表时,它似乎复制了所有列(有或没有数据),然后与我的辅助列重叠,使整个区域保持空白。
我现在想限制粘贴数据的范围,即从 A 列到 W 列,而不是粘贴在我的辅助列 X、Y 和 Z 以及整个剩余列上。
请看我下面的代码:-
Sub CopyToYearly2()
Dim LastRow As Long
Dim i As Long, j As Long
Dim answer As Integer
answer = MsgBox("Do you intend to copy this data to the Yearly analysis sheet?", vbYesNo + vbQuestion, "Copy data to Yearly analysis sheet.")
Set x = ThisWorkbook
If answer = vbYes Then
Set y = Workbooks.Open("S:\Downloads\workbook y.xlsm")
With x.ActiveSheet 'Determine last used row on waitinglist.
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
With y.Sheets("ALL Years Data")
j = .Cells(.Rows.Count, "C").End(xlUp).Row + 1
End With
For i = 3 To LastRow
'With x.Sheets("Waiting List")
With x.ActiveSheet
.Rows(i).Copy Destination:=y.Sheets("ALL Years Data").Range("A" & j)
j = j + 1
End With
Next i
'Save x and y:
x.Save
y.Save
Else
'do nothing
End If
End Sub
谢谢。
【问题讨论】:
-
问题是
.Rows(i).Copy...您希望将其限制为某些列而不是整行。 -
但是这里不需要循环复制。只需一步完成: