Автор Тема: Полезные макросы LibreOffice  (Прочитано 1578 раз)

Онлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 935
    • Домашняя страница
    • Email
Полезные макросы LibreOffice
« : 13.05.2015 13:41:06 »
Функция вычисляет сумму двух чисел в ячейке, данных в виде текстовой строки "2+3"
' Sum two numbers in string formed "X+Y"
Function StringWithSum (ByVal Expr as String) as Integer
Dim a$(2)
Dim x, y as Integer
a = Split(Str(Expr), "+")
x = Val(a(0))
If UBound(a) > 0 Then y = Val(a(1)) Else y = 0
StringWithSum = x + y
End Function

Сумма по диапазону одного или по паре чисел в ячейке в формате текстовой строки "2+3"
' Sum string values in form "X+Y"
Function SumCompoundNumbers(ByVal CellRange As Variant) as String
Dim a$(2)
Dim tx, ty as Integer
Dim x, y as Integer
Dim i, vt as Integer
Dim s as String
tx = 0
ty = 0
If VarType(CellRange) = 8 Then
SumCompoundNumbers = CellRange
ElseIf IsArray(CellRange) Then
' Parse each CellRange element
For i = LBound(CellRange) To UBound(CellRange)
a = Split(Str(CellRange(i,1)), "+")
x = Val(a(0))
If UBound(a) > 0 Then y = Val(a(1)) Else y = 0
tx = tx + x
ty = ty + y
Next
' Format result
SumCompoundNumbers = LTrim(Str(tx)) & "+" & LTrim(Str(ty))
Else
SumCompoundNumbers = ""
End If
End Function
Андрей Черепанов (cas@)