Çok büyük hatalarını aldığım numaralı yordamı aldığım noktaya ulaştım ve bu benim kodumun çok bozuk olmasından kaynaklanıyor. Söz konusu bölüm şöyle:Bu küçük VBA kodunu biraz daha küçültmek için nasıl kısaltabilirim?
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
Bu devam eder ve patientsperrespondentpertimepoint
12 kadar 4 ila 5 tüm yolu 3 ila birer birer büyür, ve karşılık gelen bir kopyalama ve yapıştırma komutu her adımda en eklenir merdiven. Sorum şu, bunu nasıl kısaltabilirim? Tekrarlanan bir çok kod var, bu yüzden daha kısa ve daha şık bir çizme yapmanın bir yolunu bulabilir miyim diye merak ediyorum. Teşekkürler!
Yapı bir işlevi yoktur yapılmış olabilir biraz daha optimizasyonlar vardır, ama bu size kod daha özlü kılan bir fikir verir? Ancak bu, kod incelemesi için daha uygundur. – findwindow
[Bundan böyle Excel VBA makrolarında seçme nasıl kullanılır] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros) güvenerek hedeflerinizi gerçekleştirmek için seçin ve etkinleştirin. – Jeeped
[Nasıl yapılır? 'Nasıl yapılır?] [Http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros] aracılığıyla okuyun, bu size oldukça uzak olacak . – BruceWayne