在vba中插入列范围

时间:2017-07-04 03:41:02

标签: vba

我有一个报告,我必须在最后一列和倒数第二列之间插入一个新列。但是,当我尝试插入列时,出现类型不匹配错误。

Dim columnInsert As Range
Dim rangeAverage As Range

Set columnInsert = Range("X80:X95")
Set rangeAverage = Range("AA1")

Columns(columnInsert:rangeAverage).Insert Shift:=xlToRight

编辑指出的问题是这一行:

列(columnInsert:rangeAverage).Insert Shift:= xlToRight

基本上我想做的就是在AA1和Z之间插入15个长空栏,但我一直遇到问题。

1 个答案:

答案 0 :(得分:1)

您在.Insert声明中输入的范围不正确

Columns(columnInsert:rangeAverage)转换为Columns(Range("X80:X95"):Range("AA1"))

这将仅移动指定范围内的单元格:

columnInsert.Insert Shift:=xlToRight    'shifts only the cells from X80:X95 to right
rangeAverage.Insert Shift:=xlToRight    'shifts cell AA1 to right

这会将整个AA列向右移动

Columns(rangeAverage).Insert Shift:=xlToRight
Columns(rangeAverage.Column).Insert Shift:=xlToRight

下面的任何一个陈述都会在Z栏和AA之间插入一个空白栏:

Columns("AA:AA").Insert Shift:=xlToRight
Columns("AA").Insert Shift:=xlToRight
Columns(27).Insert Shift:=xlToRight         'column index

您还可以插入多个列:

Columns("Z:AA").Insert Shift:=xlToLeft

这会在列Y和Z之间插入2个空列