簡體   English   中英

從Access VBA調用excel的function.ets

[英]Calling excel's function.ets from Access VBA

我正在嘗試在我的訪問項目中從VBA調用excel的FORECAST.ETS,但似乎無論如何我都會收到此錯誤:

“ VBA錯誤1004參數數目無效。”

這是我在做什么-

'**********************************************
Public Sub testFCsof()

Dim testrfXL As Object

Dim testrfNowDate  As Date
Dim testrfempSQLStr As String
Dim testrfempSQLRS As DAO.Recordset

Dim testrfRecNo As Integer

Dim testrfDateARRAY() As Date
Dim testrfPointsARRAY() As Double

Dim testrfFDFCAST As Double
Dim fdtestempID As Long

On Error GoTo Err_testrfNBA

Set todaysDB = CurrentDb()

fdtestempID = 382

testrfFDFCAST = 1000000

testrfempSQLStr = "SELECT NBAFANempPER.eventTime, NBAFANempPER.FDpoints " & _
            "FROM NBAFANempPER WHERE ((NBAFANempPER.empID)= " & fdtestempID & ") ORDER BY NBAFANempPER.eventTime;"

Set testrfempSQLRS = todaysDB.OpenRecordset(testrfempSQLStr, dbOpenDynaset, dbSeeChanges, dbReadOnly)

If Not (testrfempSQLRS.BOF And testrfempSQLRS.EOF) Then 'only do this if we have records

testrfempSQLRS.MoveLast

ReDim testrfDateARRAY(testrfempSQLRS.RecordCount - 1)
ReDim testrfPointsARRAY(testrfempSQLRS.RecordCount - 1)

testrfempSQLRS.MoveFirst

testrfRecNo = 0

Do While Not testrfempSQLRS.EOF

    testrfDateARRAY(testrfRecNo) = CDate(dateHeadFunk(CDate(testrfempSQLRS!eventTime)))
    testrfPointsARRAY(testrfRecNo) = CDbl(testrfempSQLRS!FDpoints)

    testrfRecNo = testrfRecNo + 1

    testrfempSQLRS.MoveNext
Loop

Set testrfXL = CreateObject("Excel.Application")

testrfNowDate = Now()

testrfFDFCAST = testrfXL.WorksheetFunction.Forecast.ets(Arg1:=testrfNowDate, Arg2:=testrfPointsARRAY, Arg3:=testrfDateARRAY, Arg4:=0, Arg5:=1, Arg6:=5)

Set testrfXL = Nothing

End If


Exit_testrfNBA:

Erase testrfPointsARRAY
Erase testrfDateARRAY
testrfNowDate = Empty

testrfempSQLStr = ""

If Not testrfempSQLRS Is Nothing Then
    testrfempSQLRS.Close
    Set testrfempSQLRS = Nothing
End If

Exit Sub


Err_testrfNBA:

    MsgBox "Got a sucky forecast number back.."

 generic.TestODBCErr

Resume Exit_testrfNBA

End Sub
'**********************************************

數組填充得很好,兩個大小都相同。
我可以毫無問題地調用其他Excel函數。
無法找出問題所在。 我已經嘗試過使用“ Arg =”標簽和不使用“ Arg =”標簽,以及使用最后三個可選參數來進行嘗試,嘗試使用Array(myArray)包裝數組,甚至將Arrays設置為Variant。

至少在Excel VBA中,函數名稱是Forecast_ETS,而不是Forecast.ETS。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM