Конкатенация в FormulaR1C1

chlee218 спросил: 12 мая 2018 в 03:44 в: vba

Я пытаюсь извлечь первые 8 символов строки, а также вставить "/" в восьмую позицию символа, используя .FormulaR1C1. Но, я не думаю, что у меня есть функция конкатенации, написанная совершенно правильно.

Мне нужно

MK442LLA-PB-3RC 

стать

MK442LL/A

Используемая формула R1C1 concatenate I используется следующим образом:

With Range("D2")
    .FormulaR1C1 = "=CONCATENATE(LEFT(RC[-1], 7)""/""MID(RC[-1], 8, 1))"
    .AutoFill Destination:=Range("D2:D" & lastRow)
End With    

Примечание. Я использую Mid () вместо Right (), потому что исходные числа различаются по длине .


1 ответ

makisupa488 ответил: 12 мая 2018 в 08:06

Как насчет этого вместо использования '.FormulaR1C1'? Смещение соответственно ..

Sub concatFirstEight()'last row
lastRow = range("D1048576").end(xlup).row'set your range
Set concatRange = Range("D2:D" & lastRow)'loop through range and add a "/" between the 7th and 8th character
For Each c In concatRange
    c.Value = Mid(c, 1, 7) & "/" & Mid(c, 8, 1)
NextEnd Sub