LibreOffice Calc 7.3如何通过宏批量自动设置图表标题
LibreOffice Calc 批量修改图表标题宏调整方案
你提供的原始代码本身是适配OpenOffice/LibreOffice的Basic语法,不是VBA,仅需微调即可正常运行,调整后可直接使用的代码如下:
' 此处按顺序填写存储标题的单元格地址,逗号分隔,数量和要修改的图表数量一致 Const SCells = "L8, T8, AA8" Sub 批量设置图表标题 ' 获取当前活动工作表 oSheet = ThisComponent.CurrentController.ActiveSheet ' 拆分单元格地址为数组 aCells = Split(SCells,",") ' 遍历每个单元格和对应的图表 For i = LBound(aCells) To UBound(aCells) ' 获取对应单元格的内容,Trim处理地址前后多余空格 oCell = oSheet.getCellRangeByName(Trim(aCells(i))) ' 获取当前工作表的所有图表集合 oCharts = oSheet.getCharts() ' 按索引获取对应图表(索引从0开始,对应第一个创建的图表) oChart = oCharts.getByIndex(i) ' 获取图表的内嵌对象 oChartDoc = oChart.getEmbeddedObject() ' 设置图表标题为单元格内容 oChartDoc.getTitle().String = oCell.getString() Next i End Sub
运行注意事项
- 确保
SCells内的单元格顺序和图表索引顺序一一对应:索引0对应工作表中第一个创建的图表,索引1对应第二个创建的图表,以此类推 - 如果图表和标题单元格不在同一个工作表,将
oSheet = ThisComponent.CurrentController.ActiveSheet替换为oSheet = ThisComponent.Sheets.getByName("你的工作表名称")即可 - 运行前需要先开启LibreOffice宏权限:依次点击「工具-选项-安全-宏安全性」,调整为中等权限,运行完成后建议改回高权限保障文件安全
- 运行前建议先备份文件,避免误操作导致数据丢失
内容的提问来源于stack exchange,提问作者Estatistics
相关产品推荐
相关产品推荐

