OpenOffice Basic — поиск количества точек данных в столбце

Мне нужно найти количество точек данных в одном столбце и поместить значение в заданную ячейку в электронной таблице OpenOffice Calc. Вот мой код, пока я был бы признателен, если бы кто-нибудь сказал мне, где я ошибаюсь или чего не хватает. Спасибо.

Const DATA_COL = 1 'Номер столбца для данных Const DATA_ROW_START = 2 'Начальная строка для данных

'Эта функция находит количество точек данных в столбце данных DATA_COL 'Целью этой функции является определение количества точек данных в столбце A 'Вам необходимо использовать константы DATA_ROW_START (= 2) и DATA_COL (= 1) ) 'в этой функции. В частности, функция использует информацию о том, что первая точка данных находится в строке DATA_ROW_START (= 2), а данные — в столбце DATA_COL (= 1).

Функция FindNumberOfDataPoints() As Long

Dim DATA_COL as Double
Dim DATA_ROW_START as Double
Dim count as Double
Dim row as Integer

count = 0
row = DATA_ROW_START 

While ActiveSheet.Cells(DATA_ROW_START,DATA_COL)<>"" 
        row = row + 1
        count = count + 1

Wend

If ActiveSheet.Cells(DATA_ROW_START,DATA_COL)> 0 Then
    row = row + 1

End If


count = ActiveSheet.Cells(row,DATA_COL)

ActiveSheet.Range("C11") = count 'Place count value in cell C11

Конечная функция


person dirty mike    schedule 21.09.2015    source источник
comment
Похоже, ваш код смоделирован на основе VBA. OpenOffice Basic имеет другой синтаксис. Попробуйте поискать фрагменты кода на форумах OpenOffice.   -  person Lyrl    schedule 06.10.2015


Ответы (1)


Вы можете легко найти используемую область, например, это находит последнюю использованную строку

Function getLastUsedRow(oSheet) as Integer
  Dim oCell
  Dim oCursor
  Dim oAddress
  oCell = oSheet.GetCellbyPosition( 0, 0 )
  oCursor = oSheet.createCursorByRange(oCell)
  oCursor.GotoEndOfUsedArea(True)
  oAddress = oCursor.RangeAddress
  GetLastUsedRow = oAddress.EndRow
End Function

Вам просто нужно смотреть на столбец, а не на строку.

person Andrew    schedule 13.09.2016