VBAを使用して数式をセルM2に貼り付けようとすると、動作しなくなり、エラーが明らかになりません。 Excelの数式は以下の通りです:ActiveCell.Formulaを使用してVBAから数式を移動して仕様ごとに連結
=IF(D2="",C2,IF(E2="",CONCATENATE(C2 &";"& D2),IF(F2="",CONCATENATE(C2&";"&D2&";"&E2),IF(G2="",CONCATENATE(C2&";"&D2&";"&E2&";"&F2),CONCATENATE(C2&";"&D2&";"&E2&";"&F2&";"&G2)))))
VBAの中で、私は以下を使用しようとしています:
Range("M2").Select
ActiveCell.Formula = "=IF(D2="",C2,IF(E2="",CONCATENATE(C2" & "&""; """ & "&D2"),IF(F2="",CONCATENATE(C2" & "&""; """ & "&D2" & "&""; """ & "&E2",IF(G2="",CONCATENATE(C2" & "&""; """ & "&D2" & "&""; """ & "&E2" & "&""; """ & "&F2",CONCATENATE(C2" & "&""; """ & "&D2" & "&""; """ & "&E2" & "&""; """ & "&F2" & "&""; """ & "&G2"))
でも、これは動作しません。
ActiveCell.FormulaR1C1 = "=IF(D2="",C2,IF(E2="",CONCATENATE(C2 &"";""& D2),IF(F2="",CONCATENATE(C2&"";""&D2&"";""&E2),IF(G2="",CONCATENATE(C2&"";""&D2&"";""&E2&"";""&F2),CONCATENATE(C2&"";""&D2&"";""&E2&"";""&F2&"";""&G2)))))"
を全体のコードのようにあります次のとおりです。
Sub PutBackTogether()
'
' PutBackTogether Macro
'
'
Range("M2").Select
ActiveCell.FormulaR1C1 = "=IF(D2="",C2,IF(E2="",CONCATENATE(C2 &"";""& D2),IF(2="",CONCATENATE(C2&"";""&D2&"";""&E2),IF(G2="",CONCATENATE(C2&"";""&D2&"";""&E2&"";""&F2),CONCATENATE(C2&"";""&D2&"";""&E2&"";""&F2&"";""&G2)))))"
Range("M3").Select
Columns("M:M").EntireColumn.AutoFit
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M147248")
Range("M2:M147248").Select
Columns("M:M").ColumnWidth = 17.29
Selection.Copy
Range("C2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Columns("D:M").Select
Selection.Delete Shift:=xlToLeft
ActiveWorkbook.Save
End Sub
Can so私のエラーの文脈を簡単に特定できますか?
あまりにもあなたがそこに持っている他のすべてのために
作品をお試しください& '' 'ではなく' '両方で動作するはずですが、前者はマッチングをより明白にするかもしれません。 – pnuts
最後に 'D:M'列を削除していますが、数式は' M'列にあります – Slai
正解ですが、式を取得したい場合は、コピーして列に貼り付けることを心配できますC.私は基本的にコードのすべての部分をチェックアウトしています。助けてくれてありがとう。 –