私は、1枚のシートから必要な値を選択し、それを別のシートのセルに配置するvbaスクリプトを作成しています。私の現在のスクリプトは適切な値を決定しますが、値をシートに入れることはできません。この関数は常に!Valueエラーを返します。次の抜粋の第6行のコードブレーク:VBAを使用してExcelでテキストをセルに挿入する
Function PrintTest(Cell)
Dim iRow As Integer
Dim bs As Worksheet
Set bs = ThisWorkbook.Sheets("By System")
iRow = Cell.Row
bs.Cells(iRow, 6).Value = "Hello World"
End Function
は私も.Text
を使用して試してみましたが、それはどちらか動作しませんでした。どんな助けもありがとう。
注:実際のスクリプトでは、テキストは別のシートからシードされ、変数に格納されます。私は多くの異なる細胞に同じテキストを得る方法を探しているわけではありません。
更新:空白のセルG4としてExcelスプレッドシートからCell
が渡されています。 は4と定義されています。また、これが役立つかどうかはわかりませんが、「システムで」という名前のExcelワークシートで「PrintTest(G4)」とタイプしている関数を呼び出すことはできません
更新2:Scott Holtzmanが質問に答えましたコメントで。興味のある人は、セル内から呼び出されたUDFからセルに書き込むことはできません。修正はボタンから呼び出すことでした。
あなたがエラーを取得する 'Row'の値が何であるかを役に立てば幸い? 'Cell'は定義されていないので私は尋ねます。おそらく、関数の引数に 'Cell As Range'と書かれています。また、なぜこれは機能ですか、結果を返さないのですか? –
私はCell G4をCellとして渡しています。行は4として出力されます.G4は一般的な書式設定の空のセルです。これは正直なところ私の意図が途中で変わったためです。私はその偉大な習慣ではないことを知っていますが、何も返さない関数はまだ動作するはずです。右?また、Cell As Rangeは問題を解決しませんでした。助けてくれてありがとう! – Dan
私はちょうどテストし、それは私にとって完璧に動作します。またScott氏は変数名 'Row'について良い点を挙げました。 'Row'はExcelで予約されているキーワードなので、これを' iRow'などに変更します。 –