我在这里假设您所说的“我希望在宏运行后移动它”的意思。是您希望命名范围移动。
我有一个按周跟踪时间的电子表格,“第一个”工作表是活动工作表。一周结束后,我将整个活动表复制到新表中。我想要从前一周结转的总数,所以我保留了这些数据。我通过 3 列来做到这一点:当前周总计、旧(前几周)总计、新总计。我将值从新总计粘贴到旧总计。然后我清除用于输入的单元格。
我的每一个直觉都是(是)使用命名单元格,但在这种情况下,我认为这不是正确的做法。我只是使用了单元格范围(A1、K2:K0 等)。问题是名称不是每张表的本地名称,因此您必须将名称从旧表移动到新表,而这不是值得努力。此外,在这种情况下,为每张工作表创建唯一的相似名称(例如,Mon-FriWeek1、Mon-FriWeek2 等)的替代方法在 Week1!A1:A10 等期间不会为您提供任何实用的东西。-除了你使用“应该”这样的名字的自我满足感。反正这是我的意见!
也许这可能会有所帮助:在我的电子表格中,可以从一周到下一周添加/删除行。为了允许这样做并且仍然避免命名范围,我模拟转到每行中都有一个公式的列,然后按 Shift + End 然后按向下箭头。选择将在最后一个输入内容的单元格处停止。这是代码(第一行是标题/标签):
'Copy New Total Hours as PasteValues to Old Total
Dim lastRow As Long
Range("K1").Select
Range(Selection, Selection.End(xlDown)).Select
lastRow = Selection.Rows(Selection.Rows.Count).Row + 1
Range("K2:K" & CStr(lastRow)).Select
Selection.Copy
Range("J2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
您确实需要在那里至少保留一排,否则它(以及我的许多其他事情)不起作用。但这很适合我的需要。
我希望这有帮助。