2017-07-04 67 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