Macro para remover vínculos de dados externos.

Pessoal estou precisando de uma macro que remova todos os vínculos de uma planilha.

Vínculos de dados externos? Como está sendo colocado este vínculo? <Ctrl+C> e <Ctrl+V>? Se sim, faz <Ctrl+Shift+V> / Valores ou “Texto sem formatação”

Não, os dados são vinculados como fórmula (coloco o sinal de igual e clico no outro documento), não dá para atualizar com o ctrl+shift+v, pois a macro executa o procedimento abaixo:

  1. Abre a planilha ocultamente
  2. Remove os vínculos (exatamente isso que preciso via macro)
  3. Salva como nos formatos ods e xls sem vínculos
  4. Anexa-os no e-mail e envia para os endereços de e-mails pré-cadastrados.

Na verdade qualquer macro que eu consiga trabalhar com vínculos externos já irá me ajudar bastante, como por exemplo atualizar vínculos, modificar vínculos e/ou remover vínculos.

Enquanto consigo essa macro, estou utilizando a macro abaixo como quebra galho:

Sub ConverterFormulaParaValor()

Dim dispatcher as object

dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

dispatcher.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:ConvertFormulaToValue", "", 0, Array())

End Sub

Para remover os vínculos que foram inseridos como fórmulas.

Mesmo assim obrigado!

Ola @JúnioVieira e @Conras, encontrei esta em VBA mas não funciona no Basic. para quem souber converter:

' Attribute VBA_ModuleType=VBADocumentModule
Option VBASupport 1
Option Explicit

Sub QuebrarVínculos()
 'Define uma variável do para ser interpretada como os vínculos do arquivo
 Dim myLinks As Variant
 myLinks = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
 
 'Para cada vínculo existente, executa um código que os quebra
 On Error GoTo Mensagem
 For i = 1 To UBound(myLinks)
 ActiveWorkbook.BreakLink Name:=myLinks(i), Type:=xlLinkTypeExcelLinks
 Next i
 Msgbox "Vínculos quebrados com sucesso"
 Exit Sub
 
Mensagem:
 Msgbox "Não há vínculos a serem quebrados"
End Sub

"Erro de execução do BASIC. ‘423’ LinkSources"

fonte: https://www.funcaoexcel.com.br/remover-vinculos/

ClearContents(Formulas) não resolve?

Sub ClearRangeContents()

	Dim oDoc As Object
	Dim oSheet As Object
	Dim oCell As Object
	Dim oRange As Object

	oDoc = ThisComponent
	oSheet = oDoc.Sheets(0) ' Refers to Sheet1 as in 0, 1, 2 etc
	oRange = oSheet.getCellRangeByName("A1:A9")

	oRange.clearContents(16)

End Sub

@JúnioVieira e @Gilberto Schiavinatto, deem uma olhada neste link tbm

https://forum.openoffice.org/en/forum/viewtopic.php?f=20&t=96169

Ola @JúnioVieira, disse: “Salva como nos formatos ods e xls sem vínculos”, é necessário manter as fórmulas ?

Se NÃO, selecione toda a planilha e use a macro abaixo:

'================================================|
sub ConverterFormulaParaValor	
'================================================|
Dim document, dispatcher As Object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:ConvertFormulaToValue", "", 0, Array())
end Sub

@ Gilberto Realmente não preciso manter as fórmulas. Quanto ao clearcontents, ele remove o conteudo da célula também, ou seja, os vínculos, mas preciso deixar os números por isso não dá certo. A macro que vc me indicou é exatamente a mesma que estou utilizando conforme meu primeiro comentário, essa macro está funcionando, porém gostaria de poder acessar as opções de vínculos porque remove da planilha inteira de uma vez assim a macro fica bem mais rápida. De qualquer forma fico grato pela atenção!