2016-04-01 18 views
0

Ich versuche ein Makro zu erstellen, bei dem der Benutzer einige Variablen eingeben muss. Aus diesem Grund muss ich in der Lage sein, einen Bereich unterschiedlicher Größe auszuwählen (und automatisch zu füllen). Unten ist der Code, den ich verwenden möchte, um diesen Variablenbereich automatisch zu füllen. Wie Sie sehen können, möchte ich den Bereich A2: Axxx automatisch ausfüllen, wobei xxx = 1 + Patientenprofile. Der folgende Code funktioniert, wenn patientenprofile = 50, aber ich möchte das Makro nicht jedes Mal bearbeiten müssen; Ich möchte, dass sich der Bereich basierend auf den Benutzereingaben selbst einstellt.In einen Bereich variabler Größe schreiben

Dim patientprofiles As Integer 

Worksheets("Inputs").Select 
patientprofiles = Cells(2, "B").Value 

Worksheets("Work").Activate 
Cells(2, 1) = 101 
Cells(3, 1) = 102 

Set SourceRange = Worksheets("Work").Range("A2:A3") 
Set fillRange = Worksheets("Work").Range("A2:A51") 
SourceRange.AutoFill Destination:=fillRange 
+2

@ScottCraner: Das ist eine gültige Antwort. Warum posten Sie es nicht als Antwort;) –

+0

@SiddharthRout Ich war faul. Danke für den Push. –

Antwort

2

Eine Methode des Bereichs() Objektkriterium ist eine Zeichenkette bezeichnet den Anfang und das Ende durch : abgetrennten Zellen.

Wir können Zeichenfolgen mit der & verketten. Wir beginnen mit den festgelegten Elementen der Zeichenfolge, die sich nicht ändern: "A2:A" Fügen Sie dann die Variable hinzu: patientprofiles +1.

Die letzte Saite ist "A2:A" & patientprofiles +1

So:

Set fillRange = Worksheets("Work").Range("A2:A51") 

wäre:

Set fillRange = Worksheets("Work").Range("A2:A" & patientprofiles +1) 
+0

++ schön erklärt :) –

+0

Das hat perfekt funktioniert! Vielen Dank! – sarcasm24

+0

@ sarkasm24 Gut zu helfen. Bitte denken Sie daran, als korrekt zu markieren, indem Sie auf das grau/grüne Häkchen in der Antwort klicken. Es ist etwas, was nur du tun kannst. –