2017-07-04 70 views
0

我有一个报告,我必须在最后一列和第二列到最后一列之间插入一个新列。但是,当我尝试插入列时,出现类型不匹配错误。在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换档:= xlToRight

基本上所有我想要做的是插件15长的空白栏AA1和Z之间,但我不断遇到问题。

回答

0

你在.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 

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

+1

啊,我明白了,这更有意义。谢谢保罗! – Matthew

+0

我很高兴它有帮助。您还应该开始使用您打算更新的工作表来限定范围,因此,如果您在Sheet1上工作,并且Sheet2会以某种方式变为活动状态,则您的更改将应用​​Sheet2而不是预期的Sheet1。你可以在这个'Worksheets(“Sheet1”)的前面添加前缀。列(27).Insert Shift:= xlToRight' –

+0

好吧,我现在正在尝试引用列AA的命名范围,但是当我尝试设置它到一个变量我不断得到一个类型不匹配。有没有办法在这里发布代码?我是stackOverflow的新手,我不确定是否应该这样做:( – Matthew