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的名称保持不变。
这些更改之后,宏停止工作。原因可能是因为我不知道如何在代码中声明“设备材料”。
答案 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。