0

我有一个使用 SQL 和 VB.NET 动态生成的 Excel 电子表格。列数 (2) 永远不会改变,但是记录数会根据用户指定的数据而改变。在 SQL 运行并填充电子表格后,我需要在表底部添加一条记录,显示第 2 列中记录的总计(int 值)。

就像是:

xlSheet.Range(bottom record, column1) = "Total" xlSheet.Range(bottom record, column2) = 第 2 列中所有上述记录的总和

我正在使用 VS 2010 和 Excel 2010。

我的表类似于:

*Group*     *Refered Cases*
4H BOSS                 0
4H BSG                  0
4H SALES AND MKTG       0
ACCOUNTS RECEIVABLE     0
ASSET MANAGEMENT        0
AUDIT                   0
BOSS                    0
CORPORATE BSG           0
CUSTOMER SUPPORT        0
NETWORK ENGINEERING     0
PRODUCTION ENGINEERING  0
PRODUCTION OPERATIONS   0
SECURITY                0
SNFAL PRODUCT TEAM      0
VOICE SERVICES          0
XEROX                   0

回答:

好的,我可以使用以下代码动态查找第一列的最后一个单元格并将“TOTAL”输入到单元格中并相应地对其进行格式化。

Dim lTotalRows As Long, lTotalCols As Long
    lTotalRows = xlSheet.UsedRange.Rows.Count
    lTotalCols = xlSheet.UsedRange.Columns.Count

With xlSheet.Range("A" & (lTotalRows + 1).ToString) 'Dynamically finds the last cell of the first column, and sets it equal to "Total" and formats the cell
    .Value = "TOTAL"
    .Interior.ColorIndex = 41 'Cell Background Changed to Black
    .Columns("A:B").EntireColumn.AutoFit()
    With .Font
        .ColorIndex = 2 'Cell Font Changed to White
        .Bold = True
        .Underline = Excel.XlUnderlineStyle.xlUnderlineStyleSingle
    End With
End With

我能够使用以下代码将第二列的最后一个单元格设置为等于第二列所有单元格的总和。

Dim totals as Integer
For Each dr As DataRow In dt.Rows
    totals += dr.Item(1)
Next

xlSheet.Range("B" & (lTotalRows + 1).ToString).Value = totals
4

1 回答 1

0

如果您知道总行数,则可以将下面的公式插入到列底部的单元格中。您的示例数据显示 16 行,不包括顶部标题行。

=SUM(INDIRECT(ADDRESS(ROW()-16,COLUMN())):INDIRECT(ADDRESS(ROW()-1,COLUMN())))
于 2012-06-01T23:40:38.680 回答