2016-09-03 4 views
1

Ich muss einen Bereich in Bezug auf eine bestimmte Zelle auswählen.Erstellen Sie einen Bereich von Offsets

Dies ist, was ich bisher haben - der Benutzer doppelklickt eine Zelle:

Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 

Die Zelle des geklickt Benutzer ist dann in Target als Range verfügbar.

Ich muss dann eine neue Range relativ zur Position von Target auswählen. Ich habe den Code unten versucht:

dataSheet.Range(Target.Offset(2, 2)), Target.Offset(15, bHeight)).Select 

ich andere Leute Beiträge viele verschiedene Möglichkeiten, aus der Lektüre habe versucht, mit .Cells, .Address, aber kann nicht scheinen, um es an die Arbeit. Ich denke, ich bekomme die Datentypen durcheinander? Irgendwelche Ideen?

+0

Was ist 'bHeight'? –

+0

@RobinMackenzie eine Integer-Variable – ChrisBull

Antwort

2

Sie können Offset und Resize kombinieren, um Ihr Ergebnis zu erzielen. Verwenden Sie zuerst Offset, um die Verschiebung von Target und dann Resize zu erhalten, um den Bereich auf die erforderliche Anzahl von Zeilen und Spalten zu erhöhen. Hier ist ein Beispielcode:

Option Explicit 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 

    Dim rngNew As Range 
    Dim bHeight As Integer 

    bHeight = 3 
    Set rngNew = Target.Offset(2, 2).Resize(13, bHeight) 

    rngNew.Select 

End Sub 
+0

Sollte 'Cancel' auf' True' gesetzt werden ?? –

+1

@ Gary'sStudent - guter Punkt - scheint das Verhalten für diesen kleinen Testfall nicht zu ändern. Könnte durchaus einen Unterschied für das OP machen, abhängig von ihrer Einrichtung. –

+0

Perfekt, danke! – ChrisBull

Verwandte Themen