2016-10-14 12 views
0

VBAで式を実行しようとしています。私の最終的な目標は、選択されたバッチのセルに基づいてワンクリックで複数のフォーミュラを実行させることです。私がこれらの公式で何をしているかについてのいくつかの文脈のために。私は、事前入力フィールドに基づいて作業範囲を自動的に生成するための公式を使用しています。例として:アクティブなセルに基づいて式を実行するVBA

私は回路IDを強調表示し、選択された回路IDを基準にしてスコープの下に式を記入したいとします。これは私が今までに持っているものです...私はマクロレコーダーを使用しましたが、それは働きたくありません。

Sub Formulas() 
' 
' Formulas Macro 
' 

' 

    Range("E2").Select 
    ActiveCell.Formula = "="•  Customer name: ""&RC[29]&"""&chr(10)&"•  Customer Bus Org: ""&RC[30]&"""&chr(10)&"•  Internal Circuit ID: ""&RC[2]&"""&chr(10)&"•  Customer prem address: ""&RC[12]&"" ""&RC[13]&"" ""&RC[14]&"", ""&RC[15]&"", ""&RC[16]&"", ""&RC[17]&"""&chr(10)&"•  Customer demarc: ""&RC[18]&"" ""&RC[20]&"", ""&RC[19]&"" ""&RC[21]&"""&chr(10)&"•  MRR: ""&RC[68]&"""&chr(10)&"•  Current Off Net MRC: $""&RC[10]&"""&chr(10)&"• "& _ 
     " Percent: ""&RC[89]&"""&chr(10)&"•  Bandwidth: ""&RC[6]&"" (""&RC[7]&""Mb)"&chr(10)&"•  Customer term end date: ""&TEXT(RC[32],""mmm-dd-yyyy"")&"""&chr(10)&"•  New Vendor: ""&RC[106]&"""&chr(10)&"•  New MRC: $""&RC[102]&"""&chr(10)&"•  New NRC: $""&RC[103]&"""&chr(10)&"•  New Install Interval: ""&RC[105]&"""&chr(10)&"•  New Term: ""&RC[104]&"""&chr(10)&""&chr(10)&"Planner Notes:"&chr(10)&"This project is replacing the existing ""&RC[6]&"" ("& _ 
     """Mb) based solution from (""&RC[5]&"") with a new ""&RC[99]&"" (""&RC[100]&""Mb) based solution from (""&RC[106]&""). "&chr(10)&""&chr(10)&"RFA # ""&RC[107]&"" install notes:"&chr(10)&"Please install (""&RC[31]&"") Ethernet ""&RC[99]&"" (""&RC[100]&""Mb ) circuit with (""&RC[106]&"") from (""&RC[101]&"") to ([Customer Prem] ""&RC[12]&"" ""&RC[13]&"" ""&RC[14]&"", ""&RC[15]&"", "& _ 
     "&"", ""&RC[17]&""). This new circuit will be used to replace existing customer circuit ECCKT: ""&RC[1]&"", ""&RC[109]&"", ""&RC[110]&"", ICCKT: ""&RC[2]&"". The customer prem address is (""&RC[12]&"" ""&RC[13]&"" ""&RC[14]&"", ""&RC[15]&"", ""&RC[16]&"", ""&RC[17]&"") and customer demarc is (""&RC[18]&"" ""&RC[20]&"", ""&RC[19]&"" ""&RC[21]&"")."&chr(10)&""&chr(10)&""&chr(10)&"""""& _ 

End Sub 

これは私の実際の公式であり、レコーダーが多くのことを変えたことに気付きました。
= " - 顧客名: "& AH2 &" - カスタマーバス組織: "& AI2 &" - 内部回路ID: "& G2 &" - 顧客プレムアドレス: "& Q2 &"" & R2 & "" & S2 & " "& T2 &"、 "& U2 &"、 "& V2 &" - 顧客分界点:" & W2 & "" & Y2 & " "& X2 &" "& Z2 &" - MRR: "& BU2 &" - 現在のオフネットMRC:$" & O2 & " - 利益率:" & CP2 & " - 帯域幅:" & & K2 "(" & L2 & "MB) - カスタマー用語終了日:" & TEXT(AK2、 "MMM-DD-YYYY")& " - 新しいベンダー:" & DG2 & " - 新MRC:$" & DC2 & " - 新NRC:$" & DD2 & " - 新しいインストール間隔:" & DF2 & " - 新用語: "& DE2 &"

プランナー注:

このプロジェクトは、既存の「を交換していますK2 & "(& DG2 &」)& CZ2 & "(" & & DA2からMB)ベース 溶液" "新有する "(& & J2)" "(" & & L2からMB)ベース 溶液" 。

RFAの# "& DH2 &" インストールの注意事項:

(と( "& AJ2 &")イーサネット "& CZ2 &"( "& DA2 & "MB)回路 " をインストールしてください&)〜([Customer Prem])& Q2(& DG2 & ")から([& DB2 &""" & R2 & " " & & S2」、 "& & T2"、 "& & U2"、 "& & V2")。 、 "DK2 & &"、 "& F2 &"、 "& DJ2 &" を ICCKT: "& G2 &" をこの新しい回路は、既存の顧客回路ECCKTを置き換える に使用されます。顧客プレムアドレス( "& Q2 &" "& T2 &"、 "& U2 &"、 "& V2 &" "& R2 &" "& S2 &"、 )であり、顧客分界点は、(「& W2 &あります"&Y2 &"、 "&X2 &" "&Z2​​ &")。 。

Range("E2").FormulaR1C1 = "=""Customer name: "" & RC[29]" 

:あなただけFormulaFormulaR1C1を使用する必要はありません

2)Selectを使用しないでください、だけではなく、直接、例えばセルを参照

答えて

0

1)マクロレコーダーが問題を起こした場合は、自分で数式を作成してください。次のステップは、

です。 10
Range("E2").FormulaR1C1 = "=""Customer name: "" & RC[29] & "" Customer Bus Org: "" & RC[30]" 

等 等

3)私は、完全修飾参照を使用してお勧めします:

Sub formulas() 

    Dim ws As Excel.Worksheet 

    Set ws = ThisWorkbook.Sheets("Test") ' change to name of your sheet 

    With ws 

     ' In production, you probably want to loop through the rows and insert the formula dynamically.  
     ' If so, insert loop here and reference the scope column cell dynamically instead of using range("E2") 
     .Range("E2").FormulaR1C1 = "=""Customer name: "" & RC[29] & "" Customer Bus Org: "" & RC[30]" 

    End With 

End Sub 
+0

まず第一にお時間をそんなにMiqiありがとうございました。この作品を手に入れようとすると、頭が痛くなり、楽しくなる。私はVBAの式に乗って仕事をしました。私はそれが問題になっているようです。私は私の訓練されていない目が欠けているちょっとしたことを欠いているように感じる。 –

関連する問題