2017-08-15 15 views
0
におけるXの列にわたって、最後の行までの1つのフィールドにコピー式

のは、私が最後の行にこれをダウンコピーする方法VBA <では、セルB2にエクセル - VBA

=IFERROR(MID($A2,FIND("|",SUBSTITUTE($A2,"@","|",B$1)),IFERROR(FIND(" ",$A2,FIND("|",SUBSTITUTE($A2,"@","|",B$1))),LEN($A2)+1)-FIND("|",SUBSTITUTE($A2,"@","|",B$1))),"") 

をこの式を持っていたとしましょう(列Pを含む)

私はそれが単一の列を示しているが複数ではない例を見てきました。 VBA to fill formula down till last row in column

+2

試行 'ThisWorkbook.Worksheet( "SHEETNAME")範囲( "B2"、 "P" &nmbRows)。 .Formula = "ここでの式"ここで、nmbRowsは最後に使用された行の番号です。 – AntiDrondert

答えて

1

は、行の数は列Aのデータによって決定されると仮定すると、試してください。

Dim lRow As Long 
With ActiveSheet 
    lRow = .Cells(Rows.Count, 1).End(xlUp).Row 
    .Range("B2:P" & lRow).FormulaR1C1 = "=IFERROR(MID(RC1,FIND(""|"",SUBSTITUTE(RC1,""@"",""|"",R1C)),IFERROR(FIND("" "",RC1,FIND(""|"",SUBSTITUTE(RC1,""@"",""|"",R1C))),LEN(RC1)+1)-FIND(""|"",SUBSTITUTE(RC1,""@"",""|"",R1C))),"""")" 
End With