1

3つのパラメーターを受け取る関数を作成しました。

  • 文字列の配列
  • ワークシート名
  • 文字列の配列のインデックス

コンパイルすると、次のようなコンパイルエラーが発生します。

コンパイルエラー:予想:=

私の電話は:

Sub C_Button_ImportBOM_Click()

  Dim strFilePathName As String
  Dim strFileLine As String
  Dim v As Variant
  Dim RowIndex As Long
  Dim mySheet As Worksheet

  ActiveSheet.Name = "Import"

  mySheet = Worksheets("Import")

  strFilePathName = ImportFilePicker

  v = QuickRead(strFilePathName)
  For RowIndex = 0 To UBound(v)
    PopulateNewLine (v(RowIndex), mySheet, RowIndex)
  Next

End Sub

関数宣言は次のとおりです。

Function PopulateNewLine(SourceString As String, ImportSheet As Worksheet, CurrentRow As Long)

私は無駄に多くのことを試みました。最初に宣言されて使用された最初の引数だけで、これは問題なく機能しました。

どんなアイデアでも大歓迎です。

Excel 2010 VBA

4

1 に答える 1

1

関数をサブルーチンのように呼び出しています。つまり、関数で通常行うように、関数から値を返したり、変数に割り当てたりすることはありません。つまり、引数を囲む括弧なしで呼び出す必要があります。

PopulateNewLine v(RowIndex), mySheet, RowIndex

本当に何も返さない場合は、わかりやすくするために、おそらくSubに変換する必要があります。

Sub PopulateNewLine(SourceString As String, ImportSheet As Worksheet, CurrentRow As Long)
... your code here
End Sub

別の注意点として、mySheet参照を修飾する必要があります。コメントで述べたように、を使用してSetください。次のようになります。

Set mySheet = ActiveWorkbook.Worksheets("Import")

上記のワークブックのインポートにあるものを置き換えActiveWorkbookます。

于 2012-12-09T16:45:17.050 に答える