Mam arkusz główny ze wszystkimi moimi danymi. Z szacunkiem „ukradłem” poniższy kod, aby skopiować wszystkie wiersze zawierające określony ciąg tekstowy w drugiej kolumnie do innego arkusza.
For Each r In Src.Range("B2:B" & LastRow)
If r.Value = "1. Early Season Visits" Then
If CopyRange Is Nothing Then
Set CopyRange = r.EntireRow
Else
Set CopyRange = Union(CopyRange, r.EntireRow)
End If
End If
Next r
If Not CopyRange Is Nothing Then
CopyRange.Copy Dst.Range("A1")
End If
End Sub
Powyższe formatowanie zostało pomieszane, ale powinieneś o tym pomyśleć. To działało zgodnie z reklamą po tym, jak wprowadziłem korekty dla mojego konkretnego przypadku. Próbował nawet przenieść zasady formatowania warunkowego - chociaż musiałem wprowadzić drobne poprawki do wszystkich, aby to zrobić poprawnie, ponieważ excel zrobił pewne względne bzdury.
Problemy z powyższymi są:
- Wyniki są statyczne. Jeśli dokonam zmiany w Arkuszu głównym, nie są one aktualizowane w arkuszu, w którym działa ten kod. Jest na to lepszy / inny sposób, aby to zrobić, aktualizując wszystkie arkusze.
- Oczekuję, że jeśli zaktualizuję ręcznie, uruchamiając ponownie kod, ponownie zepsuje formatowanie warunkowe - co nie jest nieznaczną poprawką.
Czy jest więc lepszy sposób na robienie tego, co chcę osiągnąć? Jeśli tak, co to jest?
źródło