Excel - Kopiuj, jeśli spełniony jest zakres warunków

Kwestia

Chcę skopiować dane z arkusza do innego, jeśli zakres wpisu jest spełniony na innym arkuszu

  • Wszystkie moje dane są w arkuszu zwanym wierszem „wstaw”, arkusz G „wstaw” zawiera nazwiska osób
  • W nazwie arkusza zakres „Dom” B4: b17 zawiera listę nazw tego zespołu
  • Jeśli nazwy wymienione w arkuszu Dom, które pojawiają się w arkuszu „wstaw”, chcę, aby ten wiersz został skopiowany do wiersza 75 i powyżej w arkuszu Dom

Rozwiązanie

„Wiersz, arkusz G” wstaw „ma nazwiska osób”

G nie może być rzędem tylko kolumna przyjmująca w kolumnie g, musiałem zrobić próbkę

Wstaw arkusz będzie wyglądał tak od kolumny A do H

kol.G col H

 dane nazwy a 1 s 2 d 3 f 4 g 5 h 6 

Arkusz domu będzie taki

 col B row4 adgkwryuzcbmnp 

Napisałem makro, uruchom makro i zobacz, czy tego właśnie chcesz. Byłoby bardziej pomocne, gdybyś dał mały wyciąg z arkuszy wkładki i domku. Jeśli chcesz i możesz zmodyfikować makro, aby dopasować je do swoich danych.

LEPSZE OSZCZĘDZANIE ORYGINALNEGO PLIKU BEZPIECZNIE KIEDYKOLWIEK ZWROTNY JEŚLI COŚ JEST ZŁE.

 Sub test () Dim cfind As Range, c As Range, x As String, dest As Range, j As Long j = 1 With Worksheets („dom”) Dla każdego c In .Range („B4: B17”) x = c .Value With Worksheets ("insert"). UsedRange Set cfind = .Cells.Find (co: = x, lookat: = xlWhole) Jeśli nie cfind Nic nie jest cfind.EntireRow.Copy End with .Range ("A75"). Przesunięcie (j, 0) .PasteSpecial j = j + 1 Następne c Koniec z końcem Sub sub undo () Z arkuszami („dom”) Zakres (.Range („A75”), .Cells (Rows.Count, „A” )). EntireRow.Delete End With End Sub 

Dziękujemy Venkat za tę wskazówkę.

Poprzedni Artykuł Następny Artykuł

Najważniejsze Wskazówki