1

我创建了一个函数来接收三个参数。:

  • 字符串数组
  • 工作表名称
  • 字符串数组的索引

当我编译时,我收到一个编译错误,说明:

编译错误:预期:=

我的电话是:

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 回答