在VBA中返回,没有达到我的预期

Vik*_*ren 1 excel vba return excel-vba

Public Function GetRowToWriteOn(ByVal SheetName As String, ByVal id As Integer) As Integer
    LastRow = ActiveSheet.UsedRange.Rows.Count
    myarray = Sheets(SheetName).Range("d7:d" & LastRow).Value
    For row = 1 To UBound(myarray, 1)
        If (myarray(row, 1) = id) Then
            Return row
        End If
    Next
End Function
Run Code Online (Sandbox Code Playgroud)

IDE说预期声明结束,我该怎么做我想要的?(返回id相同的行?)

我对VBA一点也不熟悉,但是当我从微软看这个例子时,这应该有用吗?:

Return语句同时指定返回值并退出函数.以下示例显示了这一点.

Function myFunction(ByVal j As Integer) As Double
   Return 3.87 * j
End Function
Run Code Online (Sandbox Code Playgroud)

Tra*_*ace 6

在VBA中,返回值不是通过return关键字完成的,因为它是在其他语言中自定义的.尝试:

GetRowToWriteOn = row  
Run Code Online (Sandbox Code Playgroud)

函数名称本身就是一个变量.