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

を列全体が右に移動する。

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がアクティブになった場合、変更は目的のSheet1ではなくSheet2に適用されます。このワークシート( "Sheet1")のようにプレフィックスを付けることができます。列(27).Insert Shift:= xlToRight' –

+0

これで、AA列の名前付き範囲を参照しようとしていますが、それは変数に私はタイプの不一致を取得し続けます。ここにコードを投稿する方法はありますか?私はstackOverflowに新しいです、これは物事が行われることになっているかどうかはわかりません:( – Matthew