2012-02-23 4 views
1

Я пытаюсь объединить форматированное содержимое некоторых ячеек с формулой.
Поскольку я не вижу способа решить эту проблему с помощью чистой формулы, я добавляю базовый код.Получить форматированный текст объекта range/cell

Но я не могу понять, как получить доступ к форматированному текстовому значению из отдельных ячеек.
Кажется, что 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 
+1

Вы ищете решение в openoffice или в excel? – assylias

+0

Я ищу решение openoffice, работает мое решение excel – jeb

+0

jeb, я не уверен в вашем вопросе. Код кода OO работает отлично, без необходимости добавлять что-либо после oCell –

ответ

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

+0

Thx, но это может быть только обходным путем, так как я хочу использовать формулы, например, в excel '= StringSumme (A1: A10). Я видел страницу и многие другие образцы, но я не могу найти никаких описаний использования диапазонов с функциями (формулой). – jeb

+1

@jeb: я мог ошибаться, но мои исследования показали, что вы не можете передавать диапазон в функции в ' Calc. Аргументы, переданные макросу из «Calc», всегда являются значениями. Согласно этой ссылке (http://www.linuxtopia.org/online_books/office_guides/openoffice_3_calc_user_guide/openoffice_calc_Passing_arguments_to_a_macro.html), вы можете передать диапазон как строку, а затем проанализировать ее. –

+0

Хорошо, это объясняет, почему я не могу найти ссылку на доступ к объектам диапазона. Теперь я вернусь к Excel – jeb

Смежные вопросы