2017-12-13 5 views
0

マクロ/ VBAを初めて使用しています。私は定期的に更新されるスプレッドシートを定期的に分析し、非常に反復性のあるプロセス用のマクロの開発を練習したいと考えました。私はマクロを記録するために行ってきました、そして、私はペーストメソッドエラーを得ています。 VBAコードは以下の通りです。私は別の文書から数式をコピーしています。貼り付けエラーを完全に回避するためにVBAコードに式を直接埋め込むことはできますか?別のドキュメントからペーストされた数式のワークシートクラス貼り付け方法に失敗しました

Sub SLA() 
' 
' SLA Macro 
' 

' 
    Range("Table_Tracker[[#Headers],[Docs]]").Select 
    Selection.Copy 
    Range("Table_Tracker[#All]").Select 
    Application.CutCopyMode = False 
    Selection.Copy 
    Sheets.Add After:=Sheets(Sheets.Count) 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    Columns("N:R").Select 
    Application.CutCopyMode = False 
    Selection.NumberFormat = "m/d/yyyy" 
    Columns("S:S").Select 
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 
    Range("S1").Select 
    ActiveCell.FormulaR1C1 = "1 Day SLA" 
    Columns("T:T").Select 
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 
    Range("T1").Select 
    ActiveCell.FormulaR1C1 = "3 Day SLA" 
    Columns("U:U").Select 
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 
    ActiveCell.FormulaR1C1 = "Prepare EDD" 
    Columns("V:V").Select 
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 
    ActiveCell.FormulaR1C1 = "Analyze EDD" 
    Columns("W:W").Select 
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 
    Range("W1").Select 
    ActiveCell.FormulaR1C1 = "Case Completion" 
    Range("A1").Select 
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$AK$1030"), , xlYes).Name _ 
     = "Table6" 
    Range("Table6[#All]").Select 
    ActiveWindow.ScrollColumn = 2 
    ActiveWindow.ScrollColumn = 3 
    ActiveWindow.ScrollColumn = 4 
    ActiveWindow.ScrollColumn = 5 
    ActiveWindow.ScrollColumn = 6 
    ActiveWindow.ScrollColumn = 7 
    ActiveWindow.ScrollColumn = 8 
    ActiveWindow.ScrollColumn = 9 
    Range("S2").Select 
    ActiveSheet.Paste 
    Range("T2").Select 
    ActiveSheet.Paste 
    Range("U2").Select 
    ActiveSheet.Paste 
    Range("V2").Select 
    ActiveSheet.Paste 
    Range("W2").Select 
    ActiveSheet.Paste 

End SubSub SLA() 

エラーがはい、あなたはhereを説明しRange.Formulaプロパティを使用してVBAで数式を埋め込むことができる範囲(「S2」)

+1

[マクロレコーダコードの義務的なリンク](https://stackoverflow.com/q/10714251/1188513) –

答えて

0

後の行に表示されます。例えば

ThisWorkbook.Worksheets("Sheet1").Cells(1, 1).Formula = "=SUM(A2:A101)" 

文字列は、任意の式であることができる、とVBA変数を含むように、様々な部品から構成することができます。例えば

Sub writeFormula() 
    Dim i As Long 

    With ThisWorkbook.Worksheets("Sheet1") 
     For i = 1 To 100 
      .Cells(i, 1).Formula = "=SUM(" & .Range(.Cells(i, 2), .Cells(i, 20)).Address & ")" 
     Next 
    End With 

End Sub 

これには、すべての方法でダウン細胞A100で=SUM($B$100:$T$100)にセルA1に数式=SUM($B$1:$T$1)を書き込み、A2で=SUM($B$2:$T$2)と。

+0

ありがとうございます;私が作成しようとしているマクロは、新しい列や新しい列見出しを挿入すること、5つの異なる式が挿入されることなど、既存のVBAにどのようにコードを組み込むのですか? – premiumcopypaper

+0

データが提供されているので、これはまさに。したがって一般的な説明。また、ほとんどの場合、記録されたマクロであるため、実際に何が起こるか解読するのは少し難しくなります。 – SilentRevolution

関連する問題