Как вывести несколько записей из Transformer?

вы также можете использовать оценку:

Dim rng As Range
Set rng = Sheets("Template_Test").Range("E2", Sheets("Template_Test").Cells(Rows.Count, 5).End(xlUp))
rng.Value = ActiveSheet.Evaluate("IF(" & rng.Address(1, 1) & "=""To"",""From"",""To"")")

Или вы можете использовать цикл и массив:

Dim rng
rng = ActiveSheet.Range("E2", ActiveSheet.Cells(Rows.Count, 5).End(xlUp)).Value
Dim i As Long
For i = 1 To UBound(rng, 1)
    If rng(i, 1) = "To" Then
        rng(i, 1) = "From"
    Else
        rng(i, 1) = "To"
    End If
Next i
ActiveSheet.Range("E2", ActiveSheet.Cells(Rows.Count, 5).End(xlUp)).Value = rng

Что касается времени для запуска кодов. Оба эти усредняли 0.016 seconds для 10 000 строк

@udearboy, извините за то, что у вас на 10 000 строк заняло 0.211 секунды. Не достаточно, чтобы волноваться, но просто пришлось втирать его.:)

1
задан Jacek Laskowski 22 January 2019 в 13:21
поделиться

1 ответ

Из javadoc Transformer.transform (ключ K, значение V) :

Если более одной выходной записи должно быть перенаправлено вниз по потоку, ProcessorContext.forward(Object, Object) и [111 ] можно использовать.

Обратите внимание, что возвращение нового KeyValue просто для удобства. То же самое может быть достигнуто с помощью ProcessorContext.forward(Object, Object) и возврата нуля.

0
ответ дан Jacek Laskowski 22 January 2019 в 13:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: