Ошибка может произойти и поставить в тупик в том случае, если определение функции расположено ранее её первого вызова и при этом вызов осуществлен без обязательных аргументов. Например:

Sub Main

	Dim str As String	
	str = GetDocFullPath()
	MsgBox(GetFileBaseName(str))
	
End Sub

Function GetDocFullPath(sInput as String) As String

	GetDocFullPath = ConvertFromURL(ThisComponent.getLocation())
	
End Function

Код выше сгенерирует ошибку

BASIC syntax error.
Symbol GetDocFullPath already defined differently.

Если же переместить местами определение функции, то ошибки уже не появится

Function GetDocFullPath(sInput as String) As String

	GetDocFullPath = ConvertFromURL(ThisComponent.getLocation())
	
End Function

Sub Main

	Dim str As String	
	str = GetDocFullPath()
	MsgBox(GetFileBaseName(str))
	
End Sub

Но можно и нужно в первую очередь исправить сам некорректный вызов функции, тогда и проблемы не будет.

Sub Main

	Dim str As String	
	str = GetDocFullPath("BLABLABLA")
	MsgBox(GetFileBaseName(str))
	
End Sub

Function GetDocFullPath(sInput as String) As String

	GetDocFullPath = ConvertFromURL(ThisComponent.getLocation())
	
End Function

P.S. Присылайте криптовалюту если вам нравится то, что я делаю.
Если не нравится - тоже присылайте.
LTC (Litecoin): LLN6X2uV1iuQ1e4tdmQZsf2RRwh4pxPSej

Leave a Reply

*