Excel – 删除列,但保持命名范围

我的目标是有一个需要花费一周的数据的macros,将总结/总数粘贴到另一个工作表中,然后隐藏/删除我刚刚复制的那一周(或将其移动到另一个表,我不在乎)。 在年底之前,你应该基本上每周从Sheet1复制到Sheet2

目前我已经命名周一至周五的细胞 – 我希望在macros运行后移动。

我到目前为止…

范围(“A1”)。值=工作表(“年度每日”)。范围(“ oneweek incl total column ”).Value

工作表(“YearlyDaily”)。范围(“ 周一至周五 ”)。select选项。删除Shift:= xlToLeft

您可以按照您定义的方式更改命名范围

Option Explicit Sub NamedRange() Dim Rng1 As Range 'Change the range of cells (A1:B15) to be the range of cells you want to define Set Rng1 = Sheets("Sheet1").Range("A1:B15") ActiveWorkbook.Names.Add Name:="MyRange", RefersTo:=Rng1 End Sub 

[ 来源 ]

然而,正如其他答案所指出的那样,可能还有其他(更好的)办法来处理这个问题 。 请告诉我们更多或者提出更多的信息,以便我们可以帮助你一个新的问题。

我知道这是一个很好的做法,但是为什么你在周一至周五使用命名的范围呢? 如果您使用单元格引用,它们将始终指向相同的区域,即使在删除之后。 除非我失去了一些东西。 很难看到你的列没有看到。

我在这里假设你的意思是“我希望在macros运行之后移动它”。 是你想要命名的范围移动。

我有一个电子表格来跟踪一周的时间,“第一”表是活动的。 当一周结束时,我将整个活动工作表复制到一个新工作表。 从前一周我总结了一些数据,所以我保存了这些数据。 我有3列:当前周总数,旧(前几周)总数,新总数。 我把新的总值粘贴到旧的总值。 然后我清除用于input的单元格。

我的每个本能都是使用命名单元,但在这种情况下,我认为这不是正确的做法。 我只是使用单元格范围(A1,K2:K0等)问题是,名称不是每个工作表的本地,所以你必须将名称从旧的工作表移动到新的,这只是不值得努力。 此外,在这种情况下,创build每个表单所特有的相似名称的替代方法(例如,Mon-FriWeek1,Mon-FriWeek2等)在第一周并没有给你带来任何实际意义!A1:A10等 – 除了可能自我满足,你使用的名字,如“你应该”。 无论如何,这是我的意见!

也许这可能有所帮助:在我的电子表格行可以添加/从一个星期到下一个删除。 为了允许这一点,仍然避免命名的范围,我模仿去每列具有公式的列,然后按Shift + End然后向下箭头。 select将在input内容的最后一个单元格停止。 以下是代码(第一行是标题/标签):

  '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 

你至less要保留一行,否则(在我的情况下还有很多其他的东西)不起作用。 但是,这适合我的需要就好了。

我希望这有帮助。