2014-09-10 52 views
0

在下面的代碼中,nX = xMat.Rank返回錯誤「Invalid qualifier。」。爲什麼?我使用Excel 2010中內置的VBA編輯:Excel VBA,限定符無效,Array.Rank

Public Function polyReg(ByRef x() As Double, ByRef y() As Double) As Double() 
    ' ============================= 
    Dim nX, nY, i, j As Integer 
    Dim xMat() As Double 
    nX = UBound(x) 
    nY = UBound(y) 
    ReDim xMat(1 To nX, 1 To order) 
    ' ============================= 
    For i = 1 To order 
    For j = 1 To nX 
     xMat(j, i) = 1 
    Next j 
    Next i 
    ' ============================= 
    nX = xMat.Rank 
    ' ============================= 
    polyReg = y 
    ' ============================= 
End Function 

我看着未能解決我所關心的一些相關的帖子:

Invalid Qualifier for String.Add in Outlook VBA

https://stackoverflow.com/questions/7889653/invalid-qualifier-error-in-vba

Invalid or Unqualified Reference

我還沒有在Excel的VBA文檔中找到我的問題的答案。

+0

檢查VBA內置的幫助,瞭解'.Rank'的功能。使用'WorksheetFunction.Rank方法'來檢查。 – 2014-09-10 17:21:25

回答

1

我不是VB專家。如果我的答案不正確,有人請通知我:

Visual Basic <> Visual Basic for Applications(Excel)...這是我學習的一課。 Array.Rank函數exists in VB但是does not exist in VBA (Excel)。什麼。丟人現眼。

我很想試着用類似的答案提出另一個問題,只是因爲我知道它會混淆其他不熟悉VB和VBA的程序員。是否有任何政策不提問你知道答案的問題? (理論問題的題目:Try/Catch?只有VB.VBA(Excel)使用On Error。)

+1

你的回答是正確的。數組和字符串不是VBA中的對象,並且沒有成員函數。習慣失望。 如果您找到解決方案,我們鼓勵您回答自己的問題。問一個問題,你知道答案是可以的(首先檢查Meta-Stackoverflow),只要它還沒有被問到。 – cheezsteak 2014-09-10 20:53:00