我在COLUMN H2中有数据。 。我想将它们复制到同一电子表格中的其他位置。 但是在我复制的地方,它将一次更改一个COLUMN,因为下面的每一列都被宏填充。
我现有的宏成功搜索并将此列数据粘贴到下面的空列中,例如B31。当我有10个新的数据时,下次运行宏时,我希望它将它粘贴到C31中,在C列中(作为下一个空行)下一次,D31 .......等。我的宏反复抓取H2:H11中的数据并将其粘贴到B31中,但每次重新运行宏时都会覆盖该列。它不是“看到”B列已经通过运行宏来放置数据....代码有什么问题?
Range("H2:H11").Select Selection.Copy
Range("A31").Select
Range("A31:M31").End(xlToLeft).Offset(0, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Rows("1:10").EntireRow.Select
Application.CutCopyMode = False
答案 0 :(得分:1)
Range("A31:M31").End(xlToLeft).Offset(0, 1).Select
应该是
Range("M31").End(xlToLeft).Offset(0, 1).Select
替代解决方案如下(我没有测试过,因为我不在我的MS PC上,抱歉)
dim lRow as Long 'Output Row
lRow = 31 'Start at row 31
For i = 2 to 13 'Column B to Column M
'Count if there is any values in the columns
'(if there is a header then change the 0 to 1)
If Application.WorksheetFunction.CountA(ActiveSheet.Columns(i)) = 0 Then
For Each c in Range("H2:H11") 'Cycle through output values
ActiveSheet.Cells(lRow, i).value = c.Value 'Assign values
lRow = lRow + 1 'Increment row number
next c
exit for 'exit column loop
end if
next i