【发布时间】:2016-01-06 16:26:47
【问题描述】:
我正在尝试在 Basic 中为 LibreOffice Calc 编写一个函数,以使用以下代码获取所选单元格中每个单词的首字母:
Function GetFirstLetters(rng) As String
Dim arr
Dim I As Long
arr = Split(rng, " ")
If IsArray(arr) Then
For I = LBound(arr) To UBound(arr)
GetFirstLetters = GetFirstLetters & Left(arr(I), 1)
Next I
Else
GetFirstLetters = Left(arr, 1)
End If
End Function
并且它工作正常,除非我再次尝试执行它,然后似乎新结果会附加到任何先前执行的结果中,并且它将一起返回两个字符串,例如:
删除部分甚至全部单元格,或者使用空单元格甚至在另一个页面中调用它也没关系,它总是会将结果附加到前一个:
为什么会这样?如何解决此问题?
我对Basic一无所知,所以如果这很简单,请不要抨击我。
原来的函数是这样的:
Function GetFirstLetters(rng As Range) As String
'Update 20140325
Dim arr
Dim I As Long
arr = VBA.Split(rng, " ")
If IsArray(arr) Then
For I = LBound(arr) To UBound(arr)
GetFirstLetters = GetFirstLetters & Left(arr(I), 1)
Next I
Else
GetFirstLetters = Left(arr, 1)
End If
End Function
我从这里得到它:http://www.extendoffice.com/documents/excel/1580-excel-extract-first-letter-of-each-word.html。
【问题讨论】:
标签: macros libreoffice basic libreoffice-calc