2017-07-04 6 views
0

現在このスプレッドシートで作業しており、大きな問題が発生しています。基本的には、範囲名「Average」を含む列インデックス番号を検索しようとしています。VBAの範囲名を使用して列インデックスを検索しようとしています

列インデックス22である「平均」のであれば、その後、22が返されます、など

Range("AA1").Select 
Selection.Name = "Average" 

Dim colNumber As Integer 

colNumber = WorksheetFunction.Match("Average", ActiveWorkbook.Sheets(Sheet1).Range("1, Average"), 0) 'Average is a range name 

Columns(colNumber).Insert 

私は失敗をGLOBAL_する型の不一致に至るまで、このラインに異なるエラーが出るたび:

colNumber = WorksheetFunction.Match("Average", ActiveWorkbook.Sheets(Sheet1).Range("1, Average"), 0)

私は範囲内の範囲名に基づいて、列のインデックス番号を見つける方法を探してどこでも検索した、と私は何かを見つけることができません。どんな助けでも大変に感謝しています。

ありがとうございました!

答えて

1

あなたはこれらのコード行で範囲名を再定義している:あなただけのセル・コンテンツのテキスト文字列「平均」を探しているように見える残りのコードでは

Range("AA1").Select 
Selection.Name = "Average" 

Dim lCol As Long 
lCol = ThisWorkbook.Names("Average").ReferstoRange.Cells(1,1).Column 
+0

[OK]を、これは今でははるかに理にかなって:

はあなたが必要となる「平均」という名前の範囲名の左上隅の列を取得します。 ReferstoRangeメソッドは私が思った欠けていたキーでした。ありがとうJkpieterse! – Matthew

関連する問題