2

我有这个工作簿:我需要一个宏按钮,我的用户可以单击“单击此处复制”,然后我需要一个代码来复制标题为“TC-Star Here”的工作表的第 5-25 行,并且我需要将复制的行插入(我需要粘贴的行不会自动删除以前存在的行,因此插入的行必须将以前的行向下移动)到另一个名为“时间卡”的工作表中。插入的行,我需要从单元格 A1 开始编码插入它们。因此,每次单击宏按钮时,都会复制行并插入未修改/删除的先前数据。

到目前为止我有这个代码:

Sub CopyInfo()
On Error GoTo Err_Execute
    Sheet2.Range("A1:F11").Value = Sheet1.Range("A1:F11").Value
    Sheet1.Range("A1:F11").Copy
    Sheet2.Range("A1").InsertCopiedCells
Err_Execute:
    MsgBox "All have been copied!"

End Sub

但是每次单击该按钮时,它都会将行粘贴到现有行上。

请帮忙。

4

5 回答 5

5

这是你正在尝试的吗?

Sub CopyInfo()
    On Error GoTo Err_Execute

    Sheet1.Range("A1:F11").Copy
    Sheet2.Range("A1").Rows("1:1").Insert Shift:=xlDown

Err_Execute:
    If Err.Number = 0 Then MsgBox "All have been copied!" Else _
    MsgBox Err.Description
End Sub
于 2012-08-08T00:47:48.593 回答
1

这条线

Sheet2.Range("A1:F11").Value = Sheet1.Range("A1:F11").Value

正在将 Sheet2 上的这些单元格的值设置为 Sheet1 上的值 - 也就是说,它正在复制这些值并替换那里的值。然后,您正在执行复制插入操作。

删除/注释掉那一行,看看会发生什么。

另外,我相信复制区域和粘贴区域的大小必须相同。尝试制作Sheet2.Range("A1:F11").InsertCopiedCells

于 2012-08-07T17:18:21.850 回答
1

简单 - 使用循环(另外,关闭 ScreenUpdating 以大大加快处理时间)以下会将名为“Sheet2”的工作表中的所有行复制到名为“Sheet1”的工作表中的同一行

Sub CopyOver()
    Application.ScreenUpdating = False
    For j = 1 To 1560 'Or however many rows u have
        On Error GoTo Err_Execute
        Sheets("Sheet2").Rows(j).Copy
        Sheets("Sheet1").Rows(j).Insert Shift:=xlDown
    Next j
    Application.ScreenUpdating = True
    Err_Execute:
        If Err.Number = 0 Then MsgBox "All have been copied!" Else _
        MsgBox Err.Description
End Sub
于 2013-06-13T08:48:37.537 回答
0

Thx for the post duder~,每个答案提供者都解决了我的问题~。
这是我在 excel 中的编码使用,每个选择都将插入到工作表 2,

  Private Sub CommandButton2_Click()

      Selection.Copy
      Sheet2.Range("A4").Rows("1:1").Insert Shift:=xlDown
      Sheets("Sheet1").Select
      Application.CutCopyMode = False
      Selection.Delete Shift:=xlUp

  End Sub
于 2016-04-11T06:33:20.120 回答
0
Sub Test()
    With ActiveSheet
    lastrow = .Cells(.rows.Count, "A").End(xlUp).Row
    lastrow = lastrow - 1
    MsgBox lastrow
    End With
End Sub
于 2017-05-31T07:38:14.633 回答