geschrieben Ich habe diese Formel in einer Zelle:Excel VBA Formel, aus einer Zelle genannt wird, stoppt die Verarbeitung VBA, oder trifft eine App-Defined Fehler, wenn ein Arbeitsblatt-Zelle zu
=GetData("Channel_01","Chicago")
Welche diesen Code ausführt :
Public Function GetData(ChannelCode As String, Key As String) As String
Dim sql As String
Dim cmd As New ADODB.Command
Dim outputTo As Range
Set outputTo = Application.Caller
sql = "select * from ChannelData WHERE ChannelCode = ? AND Key1 = ?"
Set cmd = getCommand(sql, ChannelCode, Key)
Dim rs As ADODB.Recordset
Set rs = cmd.Execute
WritePivotRecordset ChannelCode, rs, outputTo.Offset(1, 0)
End Function
Public Sub WritePivotRecordset(ChannelCode As String, rs As ADODB.Recordset, destination As Range)
Dim i As Integer
'*** WHEN THIS LINE OF CODE IS REACHED AND EXECUTES, PROCESSING STOPS
Set destination.Value = ChannelCode
For i = 1 To rs.Fields.Count - 1 'skip first field
destination.Offset(0, i).Value = rs.Fields(i).Name
Next
destination.Offset(1, 0).CopyFromRecordset rs
End Sub
Das Problem auf dieser Linie tritt:
'*** WHEN THIS LINE OF CODE IS REACHED AND EXECUTES, PROCESSING STOPS
Set destination.Value = ChannelCode
Ist Einstellung dieser Aufruf einer Tabelle rec alc, der den ausführenden VBA-Thread oder etwas ähnliches beendet? Ich dachte, so, also habe ich versucht diese, bevor sie eine Ausgabe zu schreiben:
Application.Calculation = xlCalculationManual
Aber jetzt auf der gleichen Zeile Code erhalte ich: Anwendungs definiert oder Objekt definierte Fehler.
Schreiben von einer VBA-Funktion auf das gleiche Arbeitsblatt, von dem die VBA-Funktion aufgerufen wird, nur nicht zulässig?
Einstellung was? .. –