Ich habe den Punkt erreicht, wo ich eine Prozedur zu groß Fehler erhalte, und es ist, weil mein Code sehr klobig ist. Der Abschnitt in Frage folgt:Wie kann ich dieses spezielle Bit des VBA-Codes verkürzen, um es kleiner zu machen?
If patientsperrespondentpertimepoint = 1 Then
Sheets("Work").Select
Range("D2:D" & patientprofiles + 1).Select
Selection.Copy
Sheets("Output").Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
ElseIf patientsperrespondentpertimepoint = 2 Then
Sheets("Work").Select
Range("D2:D" & patientprofiles + 1).Select
Selection.Copy
Sheets("Output").Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("Work").Select
Range("D" & patientprofiles + 2 & ":D" & 2 * patientprofiles + 1).Select
Selection.Copy
Sheets("Output").Select
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
ElseIf patientsperrespondentpertimepoint = 3 Then
Sheets("Work").Select
Range("D2:D" & patientprofiles + 1).Select
Selection.Copy
Sheets("Output").Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("Work").Select
Range("D" & patientprofiles + 2 & ":D" & 2 * patientprofiles + 1).Select
Selection.Copy
Sheets("Output").Select
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("Work").Select
Range("D" & 2 * patientprofiles + 2 & ":D" & 3 * patientprofiles + 1).Select
Selection.Copy
Sheets("Output").Select
Range("B4").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Dies setzt sich fort, und patientsperrespondentpertimepoint
wächst eine nach der anderen von 3 bis 4 zu 5 All dem Weg bis zu 12, und ein entsprechendes Kopieren und Einfügen-Befehl wird an jedem Schritt hinzugefügt von die Leiter. Meine Frage ist, wie kann ich das verkürzen? Da sich eine Menge Code wiederholt, frage ich mich, ob ich einen Weg finden kann, ihn kürzer und eleganter zu machen. Vielen Dank!
Erstellen Sie eine Funktion? aber das ist besser für die Code-Überprüfung geeignet. – findwindow
Siehe [So vermeiden Sie die Verwendung von Select in Excel VBA-Makros] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros) für Methoden, um wegzukommen Verlassen Sie sich auf auswählen und aktivieren Sie Ihre Ziele zu erreichen. – Jeeped
Lesen Sie durch [wie zu vermeiden '.Select'] (http://StackOverflow.com/questions/10714251/wie-zumAusweichen-use-select-in-excel-vba-macros), dies wird Sie ziemlich weit bringen . – BruceWayne