2016-06-29 12 views
0

Welcher Datentyp ist eine Excel-Zellreferenz? Ich habe Strings konstruiert, die Zellreferenzen darstellen (z. B. "G12", "AW12" usw.) und möchte sie verwenden, um benannte Bereiche zu erzeugen;Welcher Datentyp ist eine Excel Cell Reference (VBA)?

Dim UpperLeftHandCornerOfRangeCellReference As String 
UpperLeftHandCornerOfRangeCellReference = "G12" 
Dim LowerRightHandCornerOfRangeCellReference As String  
LowerRightHandCornerOfRangeCellReference = "AW12" 
NamedSheet.Names.Add _ 
      name:=RangeName, _ 
      RefersTo:="=Sheet!UpperLeftHandCornerOfRangeCellReference:LowerRightHandCornerOfRangeCellReference" 

aber werden sie als Zellbezüge nicht interpretiert, sondern die Namen der jeweiligen Strings und der benannte Bereich somit nicht erstellt. Irgendwelche Ideen? Bitte teilen. Vielen Dank!

Update:

Danke @MattCremeens für Ihre Hilfe.

Überlegen Sie, ob es hatte auf diese Weise getan werden;

Dim myCell1 As String 
myCell1 = "G12" 
Dim myCell2 As String 
myCell2 = "AW12" 
NamedSheet.Names.Add _ 
      name:=RangeName, _ 
      RefersTo:="=Sheet!myCell1:myCell2" 

so würde nicht funktionieren, weil die Zitate in dem Parameter ‚RefersTo‘ nicht den ‚myCell (1/2)‘ String-Variablen ermöglichen gelesen werden. Gibt es einen Weg, das zu beheben?

+0

Es ist eine Reihe. Sie können also 'Dim myCell als Bereich 'verwenden. –

+0

Hallo @MattCremeens --- Meinst du, die Strings können als Bereiche neu zugewiesen werden? Danke für Ihre Hilfe. – PBG

+0

Sie können einen String, der eine Zellreferenz darstellt, als Parameter zu 'Range (...)' hinzufügen. Siehe meine Antwort unten. –

Antwort

2

Was ich glaube, Sie sind Sinn zu tun ist,

Dim UpperLeftHandCornerOfRangeCellReference As Range  
Set UpperLeftHandCornerOfRangeCellReference = Range("G12") 

verwenden, müssen die Set Schlüsselwort, wenn Bereiche auf Variablen zugewiesen wird.

Wenn Sie Ihren String speichern wollen wie

myCell = "G12" 

dann ändern, nur die zweite Zeile über zu

Set UpperLeftHandCornerOfRangeCellReference = Range(myCell) 

Nun, wenn Sie eine Zelle, die ein benannter Bereich war haben (vielleicht ist das, was Sie meinen, dass eine Zellenreferenz eine Zeichenkette ist?), Sie könnten dies stattdessen tun

Set UpperLeftHandCornerOfRangeCellReference = Worksheets("Sheet1").Names("MyRangeName").RefersToRange 
+0

Wenn "G12" selbst eine Zeichenkette ist, würde das immer noch funktionieren? Danke für Ihre Hilfe. – PBG

+0

Nicht sicher, was du meinst. "G12" ist tatsächlich eine Saite. –

+0

Wenn anstelle von "G12", übergebe ich eine String-Variable gleich "G12" auf einen Bereich (d. H. Range (CellReferenceAsString)). – PBG