A fórmula VBA do Excel, chamada de uma célula, interrompe o processamento do VBA ou encontra um erro definido pelo aplicativo quando uma célula da planilha é gravada em

Eu tenho essa fórmula em uma célula:

=GetData("Channel_01","Chicago")

O qual executa este código:

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

O problema ocorre nesta linha:

'*** WHEN THIS LINE OF CODE IS REACHED AND EXECUTES, PROCESSING STOPS
    Set destination.Value = ChannelCode
,

É definir isso invocando um recálculo da planilha, que encerra o thread do VBA em execução ou algo parecido? Eu pensei que sim, então eu tentei isso antes de escrever qualquer saída:

Application.Calculation = xlCalculationManual

Mas agora nessa mesma linha de código eu recebo:Erro definido pelo aplicativo ou definido pelo objeto.

A gravação de uma função VBA na mesma planilha da qual a função VBA é chamada, apenas não é permitida?

questionAnswers(1)

yourAnswerToTheQuestion