Você precisa colocar sua função em um módulo padrão :
edepoisfuncionará:
Eu tenho uma coluna de texto que são todos hiperlinks. Quero copiar o texto e o URL em campos separados.
Por exemplo Cell (A1) tem "Apple" (hiperlink para link )
Eu quero colocar os valores em D e E
D1 conteria "Apple"
da URLFunction GetURL(HyperlinkCell As Range)
GetURL = Replace(HyperlinkCell.Hyperlinks(1).Address, "file:", "")
End Function
Eu tentei isso no ThisWorkbook (VBA) e obtive os resultados como #NAME? na minha planilha
Você precisa colocar seu código em um módulo normal:
Cortar / colar seu código lá. Deve funcionar muito bem então!
Para tornar suas intenções um pouco mais claras, você pode estender seu cabeçalho de função explicitamente declarando-o como uma função Public
(não declarando que não irá mudar nada, mas algumas pessoas supõem que ele seja implicitamente Private
) e definindo o tipo de retorno para String
:
Public Function GetURL(HyperlinkCell As Range) as String
Como a propriedade Hyperlink contém somente strings, não há nada de errado em explicitar isso em sua UDF.