使用VBA(带循环)将列从一张纸复制到另一张
我试图复制纸张1中的列并将它们粘贴到纸张2中,特别是在纸张2上的下一个空列中(这样我就不会覆盖数据)。总之,我需要复制3-81列。使用VBA(带循环)将列从一张纸复制到另一张
这里是我的代码至今:
Dim col As Integer
For i = 3 To 81
Worksheets("Sheet1").Columns(i).Copy Destination:=Sheets("Sheet 2").Column(i).
由于我申请的功能,每个贴柱复制之前并粘贴下一个,我不能简单地表示目的地列(我),因为它将简单地覆盖计算数据的最后一列。
如何更改目的地以便我没有此问题?
这个问题之前已经被问了很多次,但是我找不到我的解决方案,因为我似乎是唯一使用循环并将col分配为i的人。
Dim i As Long, j As Long
j = 3
For i = 3 To 81
Worksheets("Sheet1").Columns(i).Copy _
Destination:=Sheets("Sheet 2").Columns(j)
j = j + 2
Next i
工作就像魔术一样。非常感谢你! –
我不明白为什么'j = j + 2'部分。为什么不'j = j + 1'?或者为什么不一次复制所有列并粘贴它们? – Seb
使用我的特定数据,我无法一次传输所有列,因为每一列都被粘贴,我使用一个函数直接在它的右边创建一个新的数据列。 j = j + 1会覆盖它旁边的新数据列。 –
我真的很期待看到理解这个问题的人。 – Tehscript
[在工作表中查找上次使用的行或列的方法](http://stackoverflow.com/documentation/excel-vba/918/methods-for-finding-the-last-used-row-or-column- in-a-worksheet#t = 201705082041081950548) - 在循环内找到最后使用的列**这一事实不会影响找到它的方式。 – YowE3K
@Tehscript,见蒂姆·威廉姆斯...... – MacroMarc