TOP

Title Case LibreOffice 的函数 Calc

TITLECASE() 说明

函数 TITLECASE() 旨在将现有文本转换为标题 Casetbl 并返回以下形式的一组单词:“Function for Title Case”。

Title Case 函数代码将连字符和下划线等分隔符替换为空格,将所有单词转换为大写,并将连词转换为小写。

Title Case 对于新闻标题、网站文章标题或 YouTube 视频标题中的大小写纠正非常有用。

TITLECASE() 与标准 PROPER() 函数类似,只是连词不大写。


BASIC TITLECASE() 的代码

以下是用于创建自定义函数的宏代码,该函数可以在 LibreOffice Calc 中将文本显示为标题 (Title Case)。

打开菜单 Tools - Macros - Edit Macros...,选择 Module1 并将以下文本复制到模块中:

Function TitleCase(ByVal str As String) As String
  'moonexcel.com.ua
  Dim words As Variant
  Dim FCalc As Object
    
  FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess")  
    
  oddWordsLat = "A|An|And|As|At|But|By|En|For|If|In|Is|Of|On|Or|The|To|Vs|Via"
  oddWordsCyr = "І|Як|На|Але|Для|Якщо|В|Чи|До|Через|Та|Від|Під|Над|И|Как|Но|То|Или|От|Под|К"  
  words = Split(oddWordsLat + "|" + oddWordsCyr,"|") 
  
  str = FCalc.callFunction("PROPER", Array(str))  
  
  For i = LBound(words) To UBound(words)  
    pattern = "(?!^)\b" + words(i) + "\b"
    replacement = LCase(words(i))
    
    str = FCalc.callFunction("REGEX", Array(str,pattern,replacement,"g"))
  Next i
    
  TitleCase = str
End Function

然后关闭 Macro Editor,返回到 LibreOffice Calc 并在任何单元格中使用我们的新函数。