Excel - Copia se l'intervallo di condizioni è soddisfatto

Problema

Voglio copiare i dati da un foglio all'altro se l'intervallo di registrazione è soddisfatto su un altro foglio

  • Tutti i miei dati sono in un foglio chiamato "insert" row, G sheet "insert" ha i nomi delle persone
  • Nel campo "Dom", l'intervallo "Dom" B4: b17 ha l'elenco dei nomi di quella squadra
  • Se i nomi elencati sul foglio di Dom che appaiono nel foglio "insert", voglio che quella riga copiata nella riga 75 e sopra nel foglio di Dom

Soluzione

"Riga, foglio G" inserire "ha il nome di persone"

G non può essere una riga solo una colonna assumendo in colonna g ho dovuto fare un foglio campione

Il foglio di inserimento sarà simile a questo dalla colonna A alla H

col.G col H

 nome dati a 1 s 2 d 3 f 4 g 5 h 6 

Foglio Dom sarà così

 colonna B row4 adgkwryuzcbmnp 

Ho scritto macro eseguire la macro e vedere se questo è quello che vuoi. Sarebbe stato più utile se avessi dato un piccolo estratto di fogli di inserto e dom. Se vuoi e puoi modificare la macro per adattarla ai tuoi dati.

MEGLIO RISPARMIA IL FILE ORIGINALE IN QUALCHE MODO PER RECUPERO SE QUALCOSA NON VA.

 Sottotest () Dim cfind Come intervallo, c Come intervallo, x As String, dest As Range, j As long j = 1 con fogli di lavoro ("dom") Per ogni c In .Range ("B4: B17") x = c .Value With Worksheets ("insert"). UsedRange Set cfind = .Cells.Find (cosa: = x, lookat: = xlWhole) Se non cfind non è nulla Then cfind.EntireRow.Copy End With .Range ("A75"). Offset (j, 0) .PasteSpecial j = j + 1 Next c End With End Sub Sub undo () With Worksheets ("dom") Range (.Range ("A75"), .Cells (Rows.Count, "A") )). EntireRow.Delete End With End Sub 

Grazie a Venkat per questo suggerimento.

Articolo Precedente Articolo Successivo

I Migliori Consigli