Open Office calc 的公式或宏,用于从单元格中检索注释(注释)

Posted

技术标签:

【中文标题】Open Office calc 的公式或宏,用于从单元格中检索注释(注释)【英文标题】:Formula or Macro for Open Office calc to retrieve Comments (annotation) from a Cell 【发布时间】:2013-01-16 07:48:09 【问题描述】:

我需要从 oOcalc 工作簿中收集和整理数据。 部分信息在单元格上显示为 cmets。

我想不出一个公式来做到这一点,而且我不熟悉 oOcalc DOM 来操作该项目。

希望有人可以帮助我。 谢谢。

【问题讨论】:

【参考方案1】:

我只需要自己解决这个问题,所以这里有一个宏,可以将一张表中的单元格的 cmets 复制到另一张表中的实际单元格中。 它可能会更好,但它可以完成工作,所以它不值得(我的)时间投入!

REM ****** BASIC *********

Sub ExtractCommentAnnotationThings

Dim myDoc as Object
Dim originalSheet as Object
Dim newSheet as Object
Dim originalCell as Object
Dim newCell as Object
Dim commentString As String

REM DEFINE VAR FOR OUR LOOP
Dim iTargetRow, iTargetColumn As Long

Const kEndRow = 950
Const kEndColumn = 20

REM SET DOC
myDoc = ThisComponent

REM GET SHEET
originalSheet = myDoc.Sheets(0)
newSheet = myDoc.Sheets(1)

REM START LOOP
For iTargetRow = 0 To kEndRow: DoEvents
For iTargetColumn = 0 To kEndColumn: DoEvents
    originalCell = originalSheet.getCellByPosition(iTargetColumn,iTargetRow)
    REM commentString = Trim(originalCell.Comment.Text)
    If originalCell.Annotation.isVisible = True Then

        commentString = originalCell.getAnnotation().String

        newCell = newSheet.getCellByPosition(iTargetColumn,iTargetRow)
        newCell.String = commentString
    End If      
Next
Next
REM CONTINUE LOOP

End Sub

kEndRowkEndColumn 设置为仅包含要复制的单元格范围。 也适当设置originalSheetnewSheet(可能需要先创建一个新工作表),以便将它们复制到您想要的位置。

希望对你有帮助!

【讨论】:

以上是关于Open Office calc 的公式或宏,用于从单元格中检索注释(注释)的主要内容,如果未能解决你的问题,请参考以下文章

MS OFFICE excel vs Open office Calc vs libreoffice calc 以及相同的公式对每个原因都不起作用任何建议

如何禁止用户在 calc open office 中使用 saveas?

从 Open Office Calc Sheet 中提取超链接

自动从 Open Office Calc 发送电子邮件

Open office calc 动态单元格选择

Python:使用 lxml 从 Open Office calc 导入数据