【问题标题】:How do I put text into the cell to the left of the currently selected cell with a libreoffice macro?如何使用 libreoffice 宏将文本放入当前选定单元格左侧的单元格中?
【发布时间】:2016-01-08 16:56:06
【问题描述】:

我正在尝试编写一个宏,该宏从当前选定的单元格中获取一个字符串,并将该字符串的修改版本放入选定单元格左侧的单元格中。

到目前为止,我的 Google-fu 已经让我获得了所选单元格的内容并操纵了字符串,以便准备好进入左侧的单元格,如下所示:

oCell = ThisComponent.getCurrentSelection()
dim d1 as string
dim d2 as string
dim d3 as string
dim d4 as string
dim d5 as string

d1=oCell.getString()
d2=mid(d1,1,2)
d3=mid(d1,4,2)
d4=mid(d1,7,4)
d5=d4+d3+d2

但我不知道如何将d5 放入oCell 左侧的单元格中

我什至还没有开始研究如何使它适用于一系列选定的单元格,我想我会先让它适用于一个单元格:)

【问题讨论】:

    标签: libreoffice-calc libreoffice-basic


    【解决方案1】:

    关于 OpenOffice API 的一个很好的资源是 Andrew Pitonyak 的OpenOffice Macros Explained一书,可从his website免费下载。

    另一个资源是 Xray 工具,可从Bernard Marcelly's website 获得。下面是 Xray 工具检查 oCell 对象的图片,显示它有一个方法 .getCellAddress,它返回一个具有属性 ColumnRowSheet 的结构。

    知道了这一点,您可以看到类似这样的代码会将您带到左侧的单元格(当然您需要添加一个错误检查,以确保您还没有位于最左侧的列):

    oAddress = oCell.getCellAddress()
    oLeftCell = ThisComponent.Sheets(oAddress.Sheet).getCellByPosition(oAddress.Column-1,oAddress.Row)
    oLeftCell.setString(d5)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多