使用lotusscript计算Excel中的单元格的总和

我有一个窗体,在我有一个对象(工作表)的Excel文件中的forms。 然后我有一个button,将计算在工作表中的字段的总和,并显示它的总和在窗体的字段。 我如何编码? 这个想法是这样的

totalr = SUM(A2:A51)

doc.total =总计

如果您正在从Notes客户端使用的表单上执行此操作,并且运行Notes客户端的计算机上有Excel,则可以使用VBA。 只需将文件提取到用户的硬盘驱动器,用Excel打开它,在列的底部添加一个单元格,并在其中放置一个SUM()函数,获取新单元格的值,更新UIDOC中的字段,然后清除临时文件文件。

下面的代码假设您有一个RichText字段(包含Excel文件)称为“excelfile”,称为“总和”,将包含Excel文件中的总和值的字段,并包含代码的button的窗体。 此外,该文件将不得不被保存与附件的代码工作。

希望能帮助到你。

Sub Click(Source As Button) On Error Goto errorhandler Dim s As New NotesSession Dim ws As New NotesUIWorkspace Dim uidoc As NotesUIDocument Set uidoc = ws.CurrentDocument Dim doc As NotesDocument Set doc = uidoc.Document Dim rtitem As NotesRichTextItem Dim isfileopen As Boolean Dim filename As String, rows As Double, cols As Double, colToSum As String, c As Integer Dim xlApp As Variant, xlWorkbook As Variant, xlSheet As Variant, pathname As String isfileopen = False 'convert column letter to number colToSum = "A" c = Asc(colToSum) - 64 'extract file pathname = s.GetEnvironmentString( "Directory", True ) & "\" Set rtitem = doc.GetFirstItem("excelfile") If Not (doc.HasEmbedded) Then Msgbox "There are no file attachments on this document" Goto ExitGracefully End If Forall o In rtitem.EmbeddedObjects If ( o.Type = EMBED_ATTACHMENT ) Then filename = pathname & o.Name Call o.ExtractFile( filename ) End If End Forall 'open file Print "Opening file " & filename & "..." Set xlApp = CreateObject("Excel.Application") xlApp.Workbooks.Open filename isfileopen = True 'get sheet Print "Gathering data ..." Set xlWorkBook = xlApp.ActiveWorkbook Set xlSheet = xlWorkBook.ActiveSheet xlSheet.Cells.SpecialCells(11).Activate rows = xlApp.ActiveWindow.ActiveCell.Row cols = xlApp.ActiveWindow.ActiveCell.Column 'add a row and put the sum() formula there Print "Computing sum with Excel..." xlSheet.Cells( rows+1, c ).value = "=SUM(" & colToSum & "1:" & colToSum & Cstr(rows) & ")" 'update UI doc Call uidoc.FieldSetText( "Sum", Cstr(xlSheet.Cells( rows+1, c ).value) ) exitgracefully: 'close excel Print "Closing Excel..." If Not xlWorkbook Is Nothing Then xlWorkbook.Close False End If If Not xlApp Is Nothing Then xlApp.DisplayAlerts = False xlApp.Quit Set xlApp = Nothing End If If isfileopen Then 'remove temp file Print "Removing " & filename Kill filename End If 'done Print "Done" Exit Sub errorhandler: Msgbox Error & " line " & Erl Exit Sub End Sub