2017-11-29 24 views
0

VBAコーディングが新しく、ここで援助を得ることができれば幸いです。ダウン10行 Excel VBA:アクティブなセルに式をコピーする

  • コピーアクティブセルの数式は、それが(記入)

    • 入力:私は(ハードコーディングされたセル範囲または参照を指定せずに)任意のセルのために次の操作を実行するコードを作成しようとしていますのActiveCellに式を挿入する試みにおいて

    私が試した:

    Sub Test() 
    ActiveCell.formula = "=IF(ISBLANK(C5)*ISBLANK(D5),"",IF(ISBLANK(D5),(C5),CONCATENATE(C5,"" ["", D5, ""]"")))" 
    End Sub 
    

    しかし、本のproduをCES 1004:アプリケーション定義またはオブジェクト定義のエラー

    私はのActiveCellため範囲オブジェクトを宣言しようとしたが、それでもエラーに遭遇しました。

    これに関するお問い合わせは高く評価されます。

  • 答えて

    1
    ActiveCell.formula = "=IF(ISBLANK(C5)*ISBLANK(D5),"""",IF(ISBLANK(D5),(C5),CONCATENATE(C5,"" ["", D5, ""]"")))" 
    

    埋め込み引用符の最初のセットを2倍にしていなかった。

    +0

    @Adeel - そして 'ActiveCell.Resize考える(10、1).Formula'ではなく、これだけ' ActiveCell.Formula' – YowE3K

    +0

    は素晴らしいが助けました。それにすべて取り組むための1行のコード、笑。まさに私が探していたものです。 – Adeel

    +0

    @Tim:ありがとう。不足している引用についてのあなたの鋭い目は非常に助けになりました。 – Adeel

    0

    次のルーチンを使用して、式をセルからVBE互換形式にコピーできます。役立つかどうかを確認してください。

    Public Sub CopyExcelFormulaInVBAFormat() 
    Dim strFormula As String 
    Dim objDataObj As Object 
    
    '\Check that single cell is selected! 
    If Selection.Cells.Count > 1 Then 
        MsgBox "Select single cell only!", vbCritical 
        Exit Sub 
    End If 
    
    'Check if we are not on a blank cell! 
    If Len(ActiveCell.Formula) = 0 Then 
        MsgBox "No Formula To Copy!", vbCritical 
        Exit Sub 
    End If 
    
    'Add quotes as required in VBE 
    strFormula = Chr(34) & Replace(ActiveCell.Formula, Chr(34), Chr(34) & Chr(34)) & Chr(34) 
    
    'This is ClsID of MSFORMS Data Object 
    Set objDataObj = CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") 
    objDataObj.SetText strFormula, 1 
    objDataObj.PutInClipboard 
    MsgBox "VBA Format formula copied to Clipboard!", vbInformation 
    
    Set objDataObj = Nothing 
    
    End Sub 
    

    このルーチンを挿入した後。数式をセルに通常入力するだけです。その後、セルに滞在してこのコードを実行すると、クリップボードにコピーされます。 VBEに移動し、Ctrl + Vキーを押して必要な場所にコードを貼り付けます。

    もともとに掲載:

    https://chandoo.org/forum/threads/copy-formula-from-excel-to-clipboard-in-vba-compatible-format.35997/

    +0

    こんにちは、 あなたのご意見ありがとうございますが、これは私が探しているものの逆です。おそらく、私は私の元々の要求を拡張するべきです:私はそれをショートカットキーに簡単に保つことを試みています。 Ctrl + Shift + Rは、(元の質問で提供されている)数式を** ANY **アクティブセルに自動的にコピーし、それを10行下に記入します。 これに関するアイデアはありますか? – Adeel

    +0

    リクエストが解決されました。 – Adeel

    関連する問題