0

我在 COLUMN H2 中有数据。. 我想将它们复制到同一个电子表格的其他地方。但是在我复制的地方,它会一次更改一列,因为下面的每一列都被宏填充。

我现有的宏已成功搜索到这一列数据并将其粘贴到下面的空列中,例如 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
4

1 回答 1

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
于 2012-05-04T17:41:06.983 回答