Dim server As BASICATLSERVERLib.IArrayAccess
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If server Is Nothing Then
Set server = New BASICATLSERVERLib.TheCoClass
End If
Dim arr As Variant
Dim v As Variant
Dim i As Integer
i = 0
arr = server.getArray
For Each v In arr
Target.Offset(i, 0).Value = v
i = i + 1
Next v
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If server Is Nothing Then
Set server = New BASICATLSERVERLib.TheCoClass
End If
If Not IsEmpty(Target) Then
Target.Cells(Target.Cells.Count).Offset(0, 3).Value = _
server.Sum(takeNumericalValuesFromRange(Target))
End If
End Sub
Function takeNumericalValuesFromRange(Target As Range) As Variant
Dim c As Range
Dim i As Integer
Dim result() As Variant
ReDim result(1 To Target.Cells.Count)
i = LBound(result)
For Each c In Target.Cells
If Not IsEmpty(c) And IsNumeric(c) Then
result(i) = c.Value
i = i + 1
End If
Next c
ReDim Preserve result(LBound(result) To i - 1)
takeNumericalValuesFromRange = result
End Function