插入列后更改命名范围引用

时间:2019-07-05 12:05:39

标签: excel vba reference named-ranges

我有一个代码,可将列添加到命名范围的末尾。为此,我定义了“ LastM”和“ LastQ”,它们对指定范围内的列进行计数,然后复制这些列(请参见下面的代码)。

但是,一旦插入列,命名范围就会扩大,但是“ LastM”的值是固定的,我不能再将其用于进一步的操作。

是否有任何方法可以使“ LastM”变量变大,即在将列添加到指定范围后再次对列进行计数?

我想我可以定义一个新的“ LastM2”并再次对列进行计数,但是我觉得这不是一个非常有效的解决方案。

感谢您的帮助!

'Adding 3 rows to monthly Data
LastM = ws.Range("Monthly").Columns.Count
Set Rng1 = Range("Monthly").Columns(LastM).Offset(0, -1)
Set Rng2 = Range("Monthly").Columns(LastM).Offset(0, -3)
Range(Rng1, Rng2).Copy
Range(Rng1, Rng2).EntireColumn.Offset(0, 3).Insert

'Adding 1 row to Quaterly Data
LastQ = ws.Range("Quaterly").Columns.Count
Set Rng3 = Range("Quaterly").Columns(LastQ).Offset(0, -1)
Rng3.Copy
Rng3.EntireColumn.Offset(0, 1).Insert

'LAstQ and LastM are fixed but the Named range expanded'    

1 个答案:

答案 0 :(得分:0)

这样的事情怎么样?

with ws.Range("Monthly")
    'Adding 3 rows to monthly Data
    Set Rng1 = .Columns(.Columns.Count).Offset(0, -1)
    Set Rng2 = .Columns(.Columns.Count).Offset(0, -3)
    Range(Rng1, Rng2).Copy
    Range(Rng1, Rng2).EntireColumn.Offset(0, 3).Insert
end with

with ws.Range("Quaterly")
    'Adding 1 row to Quaterly Data
    Set Rng3 = .Columns(.Columns.Count).Offset(0, -1)
    Rng3.Copy
    Rng3.EntireColumn.Offset(0, 1).Insert
end with
相关问题