将数据从不同的工作表复制并粘贴到同一Excel电子表格中的另一个工作表

时间:2018-06-19 13:12:52

标签: excel vba excel-vba

Sub Save7()
Dim NextRow As Range
Set NextRow = Range("AC" & Sheets("Sheet1").UsedRange.Rows.Count)
Sheet3.Range("AC14:AG14").Copy
Sheet1.Activate
NextRow.PasteSpecial Paste:=xlValues, Transpose:=False
Application.CutCopyMode = False
Set NextRow = Nothing
End Sub

此代码的目的是从工作表3复制数据(AC14中的五列“否”到AG14)并将其粘贴到工作活动中最后一个单元格所在的工作表1。

上面的代码运行良好,但是我对工作表1的工作表选项卡名称进行了一些修改。工作表1现在称为“设备材料”,而工作表3的名称保持不变。

这些更改之后,宏停止工作。原因可能是因为我不知道如何在代码中声明“设备材料”。

3 个答案:

答案 0 :(得分:0)

无需执行复制/粘贴操作即可将数据从电子表格上的一个位置移动到另一个位置。您只需分配各个Range对象的Value,例如:

Sheet1.Range("NamedRange2").Value = Sheet1.Range("NamedRange2").Value

还要为工作表使用代码名称,而不是Sheets("SheetName"),并为范围定义名称,而不是Range("AC14:AG14",否则,如果用户重命名工作表或插入或插入代码,代码将停止工作。删除引用上方的任何行。

答案 1 :(得分:0)

如果要稍微自动化一点,可以收集活动的工作簿并使用wb.Worksheets遍历每个工作表。然后使用targetSheet.Name收集名称。

Option Explicit

Public Sub getSheet()

    Dim wb As Workbook
    Dim targetSheet As Worksheet
    Set wb = ActiveWorkbook

    For Each targetSheet In wb.Worksheets
        Debug.Print targetSheet.Name
    Next targetSheet

End Sub

答案 2 :(得分:0)

我是巴西人呵呵,我理解了您的问题,我有一个代码可以更改同一工作表中的数据(我将在此处附加),要更改另一工作表中的数据,您需要戴上:

Worksheets(“ NameWorkSheet)激活

针对引用此标签的VBA。