粘贴宏时保持公式完整

粘贴宏时保持公式完整

有没有办法让我的宏将另一张工作表中的数据复制并粘贴到主工作表中,同时保留主工作表中的公式?因此,本质上我希望我的宏只粘贴文本,同时保留主电子表格的格式和公式。我还想在将我从日常电子表格中复制的数据粘贴到主工作表后删除这些数据。这是我到目前为止的宏

Sub macro ()

Workbooks.Open Filename:= _
        ("I:\Master Copy.xlsm"), Password:="nm"

Dim lNewRow As Long
Dim lDataRow As Long

Windows("Master Copy").Activate
ActiveSheet.Unprotect Password = "nm"
    Windows("Daily Worksheet").Activate
    '1. Find last used row in both sheets
    lNewRow = Workbooks("Daily Worksheet").Worksheets("Sheet1").Cells(Worksheets("Sheet1").Rows.Count, "A").End(xlUp).Row
  Windows("Master Copy").Activate
    lDataRow = Workbooks("Master Copy").Worksheets("Submission Log").Cells(Worksheets("Submission Log").Rows.Count, 1).End(xlUp).Row
    lDataRow = lDataRow + 1
    '2. Copy data
    Workbooks("Daily Worksheet").Worksheets("Sheet1").Range("A2:R" & lNewRow).Copy
    '3. Paste data
    Worksheets("Submission Log").Range("A" & lDataRow).PasteSpecial

    Application.CutCopyMode = False
    Selection.ClearContents

  Windows("Master Copy").Activate

ActiveSheet.Protect Password = "nm"


End Sub

答案1

你无法用一行代码完成你要求的事情。

我假设您的两张表之间每列的内容大致兼容(否则您不会尝试将整个范围从一张表复制到另一张表)。

以下是实现此目的的一种方法:

  1. 将整个范围复制到目标工作表,但只粘贴文本。这将保留目标工作表的格式,但会覆盖您想要保留的公式。
  2. 在目标工作表上,将要保留的公式从上一行复制到新粘贴的行。Excel 将自动更新公式中的任何相对引用。您必须对包含公式的每个连续单元格组执行此操作。

当然还有其他方法可以做到这一点,但所有这些方法都需要您的 VBA 代码“知道”需要不同处理的单元格的引用(或如何找到它们)。没有内置功能可以在单个操作中执行您需要的几种不同的复制类型到单个范围。我们之所以有 VBA 就是因为这样的事情!


至于从源表中删除数据,我想你要找的是清除内容方法。

相关内容