2016-04-22 11 views
1

Ich versuche mehrere Spalten aus einem benannten Bereich auszuwählen. Ich baue die Zeichenfolge, was mit einigen Variablen ausgewählt werden sollte:Excel 2010 VBA-Bereich wählt keine korrekten Daten aus einer benannten Tabelle aus

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 

ich den Code Schritt-für-Schritt lief und überprüfte die „strforrange“ Variable. Auch wenn es korrekt ist, weichen die ausgewählten Spalten von den in der Zeichenfolge angegebenen ab.

Gibt es eine andere Möglichkeit, den Bereich einer benannten Tabelle zu erhalten oder kennt jemand eine Lösung dafür?

Antwort

1

Folgendes sollte helfen; Ich habe einen Verweis auf eine hilfreiche Funktion enthalten, die eine Spaltennummer in die entsprechenden Spaltenbuchstaben umwandelt (Kredit: Function to convert column number to letter? Antwort von @brettdj)

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

Mit dieser Funktion können Sie nur die DataBodyRange Funktion neben Columns verwenden können, um wählen der gewünschte Bereich:

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

Vielen Dank für Ihre Antwort, es hat es behoben! In Ihrem Code ist ein kleiner Fehler: Die Variablen startColumnLetter und lastColumnLetter sollten nicht in doppelten Anführungszeichen stehen. – freakfeuer

+0

Ich bin froh, dass ich helfen konnte! Oh ja, ich werde das jetzt bearbeiten. Vielen Dank – Jordan

Verwandte Themen