Ich versuche Excel FORECAST.ETS von VBA in meinem Access-Projekt zu nennen, aber es scheint so, egal, was ich tue ich diesen Fehler:function.ets aus Access VBA Aufruf Excel
"VBA Error 1004 Invalid number of arguments."
Hier ist, was Ich mache -
'**********************************************
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
'**********************************************
Die Arrays füllen sich gut, beide die gleiche Größe.
Ich kann andere Excel-Funktionen ohne ein Problem aufrufen.
Ich kann nicht herausfinden, was das Problem sein könnte. Ich habe es mit und ohne die "Arg =" - Tags versucht, mit und ohne die letzten drei optionalen Argumente, habe versucht, die Arrays mit Array (myArray) zu umhüllen, sogar die Arrays auf Variant zu setzen.
ja seine Forecast_ETS in Excel VBA, aber sollte es eine Fehlerfunktion oder Prozedurdefinition nicht foundor oder etwas ähnliches gegeben haben –
Danke. Ich habe Forecast_ETS in gesteckt, aber habe - "Die Forecast_ETS-Eigenschaft der WorksheetFunction-Klasse konnte nicht abgerufen werden". – tomkoel
Vielen Dank! Ich änderte den Namen in Forecast_ETS und bekam dies - Die Forecast_ETS-Eigenschaft der WorksheetFunction-Klasse konnte nicht abgerufen werden. Ist das ein "besserer" Fehler als "Ungültige Anzahl von Argumenten"? – tomkoel