2016-04-22 6 views
1

名前付き範囲から複数の列を選択しようとしました。Excel 2010 VBA Rangeは名前付きテーブルから正しいデータを選択しません

Dim onecolumn as Integer, lastcolumn as Integer 
Dim tblTable as ListObject 
Dim strforrange as String 

Set tblTable = Sheet1.ListObjects("Table1") 
onecolumn = 3 
lastcolumn = tblTable.Range.Columns.Count 

strforrange = tblTable & "[[#All],[Column" & onecolumn & "]:[Column" & lastcolumn - 1 & "]]" 

Range(strforrange).Select 

私はコードをステップ・バイ・ステップを実行し、「strforrange」変数をチェックする:私はいくつかの変数を選択すべきかの文字列を構築します。たとえ正しい場合でも、選択した列は文字列に記載されている列とは異なります。

名前付きテーブルの範囲を取得する方法はありますか、それとも誰かがこれを解決する方法を知っていますか?

答えて

1

以下が役立ちます。あなただけを選択しColumnsと一緒DataBodyRange機能を使用することができ、この機能を使用する

Function Col_Letter(lngCol As Long) As String 
Dim vArr 
vArr = Split(Cells(1, lngCol).Address(True, False), "$") 
Col_Letter = vArr(0) 
End Function 

:私は、対応する列文字に列番号を変換役立つ関数への参照(@brettdjによってFunction to convert column number to letter?答えクレジット)を含めました望ましい範囲:

Sub SelectSpecificDataRange 

Dim startColumn as Long, lastColumn as Long 
Dim tblTable as ListObject 
Dim startColumnLetter, lastColumnLetter as String 

Set tblTable = Sheet1.ListObjects("Table1") 
startColumn = 3 
startColumnLetter = Col_Letter(startColumn) 
lastColumn = tblTable.Range.Columns.Count 
lastColumnLetter = Col_Letter(lastColumn) 

tblTable.DataBodyRange.Columns(startColumnLetter & ":" & lastColumnLetter).Select 

End Sub 
+0

あなたの答えをありがとう、それはそれを修正しました!あなたのコードでは小さな間違いがあります:変数startColumnLetterとlastColumnLetterは二重引用符で囲まないでください。 – freakfeuer

+0

うれしい私は助けることができました!ああ、私は今それを編集します。ありがとう – Jordan

関連する問題