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.