2017-05-16 14 views
-3

VBAスクリプトを介してセルにデータを挿入しようとしました。vba - セルに値を挿入する

function()のワークシートで直接呼び出すことができないのはなぜですか?

私はエディタで関数directを呼び出すと動作します。

コード例:あなたは関数のMODULを作成するために必要なすべての

Function sbWriteIntoCellData() 
     Workbooks(1).Worksheets(1).Cells(1, 1) = "Hello World"; 
End Function 
+0

[VBA:関数を介して別のセルの値を変更する方法は?](http://stackoverflow.com/questions/3844792/vba-how-to-change-the-value-of-another -cell-via-a-function) –

+0

その投稿は私の質問に答えることができません。どうして私はワークシートのセルで関数をdirektly呼び出すことができません。私はボタンのイベントによって呼び出される関数をモジュール化した大きなプログラムを持っています。私は今、なぜこの単純な例がうまくいかないのか混乱しています... – marciano

+0

シートから関数を呼び出すと、ユーザー定義関数*内の別のセルの値を変更することができないためです。 UDFは、コンテンツを変更しない値を返すものとします。 –

答えて

0

まず、そうでない場合は、あなたがそれを呼び出すことができる文句を言いません。

関数はpublicとして宣言し、戻り値が必要です。

これで、呼び出されたCellに「Hello World」と書き込むようになりました。この関数は、= sbWriteIntoCellDataを使用して呼び出します。

+0

返事ありがとうございます。今では、複数のセルにストリング値を設定したいと考えています。私がセルを:workbooks(1).worksheet( "table1")で検索すると、セル(5,99)= anyStringは動作しません。 – marciano

+0

コードにいくつかのエラーがあります。 CANTはあなたがシートから呼び出すことでそれを行います。マクロを使用する代わりに、ボタンを使用するか、マクロ内でf5を押すだけで済みます。構文は「ワークシートの代わりにワークシート」でなければならず、セルの内容を '.Value'で指定する必要があります。 'Workbooks(1).Worksheets(1).Cells(1,1).Value =" Test "'関数とサブの主な違いは、関数が値を返すことができることです。あなたはあなたの目的のためにそれを必要としません。 – UGP

関連する問題