спросил что-то похожее на днях и все еще застрял ... Сейчас я пытаюсь использовать другой подход, который я наблюдал на здесь и здесь . Короче говоря, мне нужно извлечь данные из источника в выходной файл, когда я получу совпадение идентификатора. На этот раз я попытался объединить оба идентификатора в исходной и выходной книгах. Если есть совпадение, скопируйте строку из источника в выходной файл.
В коде я делаю оператор FOR
для чтения каждой строки из источника и объединения значений из A1: B1 и т. Д., Затем следующий FOR
делает то же самое для выходного файла и с конкатенацией ячейки criterio1
и criterio2
IF
, если есть совпадение, затем скопируйте строку источника на выход.
Dim criterio1 As String
Dim criterio2 As String
For filaIndiceFuente = 2 To filaFuenteUltima
filaIndiceFuente = filaIndiceFuente + 1
criterio1 = planillaFuente.Range("A2" & filaIndiceFuente).Text & planillaFuente.Range("B2" & filaIndiceFuente).Text
criterio2 = planillaDestino.Range("A2" & filaIndiceDestino).Text & planillaDestino.Range("B2" & filaIndiceDestino).Text
For filaIndiceDestino = 2 To filaDestinoUltima
If criterio2 = criterio1 Then
libroFuenteSub.Sheets(1).Rows(filaIndiceFuente).Copy Destination:=libroDestino.Range("A" & filaIndiceDestino)
End If
Next filaIndiceDestino
Next filaIndiceFuente
Выполнение приведенного выше кода возвращает error 438
внутри IF
и использование msgbox
вместо этого приводит к аварийному завершению Excel полностью, я полагаю, это связано с циклом, но я ничего не понимаю. Любая помощь по циклам и операторам копирования / вставки?.