Ajuda na macro

tenho essa macro para substituir dados da planilha para o writer:

REM  *****  BASIC  *****
Option VBASupport 1
Option Compatible
Sub Main

caminho = "C:\Users\Desktop\1\ARQUIVO.odt"
set objwriter = createobject ("writer.application")

objwriter.Visible = true
objwriter.Documents.Add template:=caminho, newTemplate:=false,documentType:=0

for i = 9 to 24
buscar = Dados-ParaAg.Range("D" & I).TEXT
substituir = Dados-ParaAg.range("C" & I).TEXT
'TROCAR DADOS

with objwriter.selection.find
.text = buscar
.substiruicao.text = substituir
execute substituir:=2
end with

next i
objwriter.Activate

End Sub

na parte : buscar = Dados-ParaAg.Range(“D” & I).TEXT
Erro de execução do BASIC.
‘91’
Variável do objeto não definida.

como solucionar este erro para a macro rodar?

@FelipeRosseti, talvez seja falta disso, acrescente no inicio da macro:

Dim buscar As String
Dim substituir As String

continua com o mesmo erro

O Basic do LibreOffice não sabe o que é

Dados-ParaAg.Range("D" & I).TEXT

Vc tem de definir de que se trata. Não está definido em lugar nenhum.

onde e como eu poderia fazer essa definição?