获取范围/单元格对象的格式化文本

Posted

技术标签:

【中文标题】获取范围/单元格对象的格式化文本【英文标题】:Get the formatted text of a range/cell object 【发布时间】:2012-02-23 11:50:26 【问题描述】:

我尝试用公式连接一些单元格的格式化内容。 因为我看不到用纯公式解决它的方法,所以我添加了一些基本代码。

但我不知道如何从单个单元格中访问格式化的文本值。 oCell 似乎不是单元格对象,而只是单元格内容。

我该如何改变这个,所以我可以使用类似的东西 oCell.Text 或 oCell.String ...

Function StringSumme(oCellRange )
    dim result as String
    dim nRow as Integer

    result = ""
   For nRow = LBound( oCellRange, 1) To UBound( oCellRange, 1 )
        For nCol = LBound( oCellRange, 2) To UBound( oCellRange, 2 )
            oCell=oCellRange(nRow,1)
            result = result + oCell
        Next 
    Next 
    StringSumme = result 
End Function

在 Excel 中这个可以工作

Function StringSumme(bezug As Range) As String
    Dim txt As String
    Dim ce As Range

    txt = ""
    For Each ce In bezug.Cells
        txt = txt & ce.Text
    Next
    StringSumme = txt
End Function

【问题讨论】:

您是在 openoffice 还是在 excel 中寻找解决方案? 我正在寻找一个 openoffice 解决方案,我的 excel 解决方案有效 jeb,我不确定你的问题。您编写的 OO 代码可以完美运行,无需在 oCell 之后添加任何内容 但它只复制没有格式的文本。我有格式为“0”的单元格,OO 代码我丢失了, +1 好问题。我今天学到了一些新东西,哈哈 【参考方案1】:

杰布

我想我现在明白你的问题了。

当你输入这个时

Function StringSumme(oCellRange)

oCellRange 不是范围。它是一个正在传递的数组。因此 oCell 不是单元格对象,而是您猜对的单元格内容。

你可能想把它改成类似

oCell = Sheet.getCellByPosition(X, Y)

然后使用oCell.Value

有趣的阅读

http://wiki.services.openoffice.org/wiki/Documentation/BASIC_Guide/Cells_and_Ranges

【讨论】:

谢谢,但这只能是一种解决方法,因为我想使用像 excel `=StringSumme(A1:A10) 这样的公式。我看到了页面和许多其他示例,但我找不到任何使用范围和(公式)函数的描述 @jeb:我可能是错的,但我的研究表明您不能在“Calc”中的函数中传递范围。从“Calc”传递给宏的参数始终是值。根据此链接 (linuxtopia.org/online_books/office_guides/…),您可以将范围作为字符串传递,然后对其进行解析。 好的,这就解释了为什么我找不到任何参考如何访问范围对象。现在我将切换回 Excel @jeb:是的。如果您想将其作为范围传递,这似乎是唯一的选择。否则你将不得不使用我上面给出的选项:(

以上是关于获取范围/单元格对象的格式化文本的主要内容,如果未能解决你的问题,请参考以下文章

如果文本被另一个单元格匹配,请使用Google Apps脚本有条理地格式化一个单元格

如何把Excel单元格默认的格式设置为“文本” ,我的意思是下次启动格式默认为‘文本’格式

范围格式中每个单元格的 VBA 百分比

EXCEL VBA:根据值范围格式化现有数字单元格

Excel 如何在VBA中设定单元格的格式为文本

VBA代码将一个单元格的条件格式复制到未指定范围的单元格