首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何创建一个可以对任意数量的行进行小计的宏,并将总计放在正确的行中?

要创建一个可以对任意数量的行进行小计的宏,并将总计放在正确的行中,您可以按照以下步骤进行操作:

  1. 打开Excel,并确保您要操作的工作簿处于活动状态。
  2. 按下Alt + F11键,打开Visual Basic for Applications (VBA)编辑器。
  3. 在左侧的项目资源管理器窗格中,找到并展开您的工作簿,然后双击以打开代码窗口。
  4. 在代码窗口中,输入以下VBA代码:
代码语言:txt
复制
Sub 小计宏()
    Dim 总计行 As Integer
    Dim 小计行 As Integer
    Dim 数据开始行 As Integer
    Dim 数据结束行 As Integer
    
    ' 设置总计行和小计行的初始行数
    总计行 = 2
    小计行 = 2
    
    ' 获取数据开始行和结束行的行数
    数据开始行 = Range("A2").Row
    数据结束行 = Range("A" & Rows.Count).End(xlUp).Row
    
    ' 循环遍历数据行进行小计
    For i = 数据开始行 To 数据结束行
        If Range("A" & i).Value <> Range("A" & i + 1).Value Then
            ' 将小计值写入小计行的指定列
            Range("B" & 小计行).Value = Application.WorksheetFunction.Sum(Range("B" & 总计行 & ":B" & i))
            
            ' 设置下一小计行和总计行的行数
            小计行 = 小计行 + 1
            总计行 = i + 1
        End If
    Next i
    
    ' 将最后一个小计值写入小计行的指定列
    Range("B" & 小计行).Value = Application.WorksheetFunction.Sum(Range("B" & 总计行 & ":B" & 数据结束行))
    
    ' 设置总计行的单元格格式
    Range("B" & 小计行 + 1).HorizontalAlignment = xlRight
    Range("B" & 小计行 + 1).Font.Bold = True
    Range("B" & 小计行 + 1).Interior.Color = RGB(220, 230, 241)
    
    ' 选中总计行的下一行
    Range("A" & 小计行 + 1).Select
End Sub
  1. 按下F5键或点击工具栏上的“运行”按钮执行宏。

这个宏将在第一列中的列A中查找数据,然后在列B中进行小计。它会将每个小计的结果放在第二列中的正确行中,并在小计行的下一行放置总计。

应用场景: 此宏适用于需要对数据进行分类并进行小计的情况。例如,在销售数据中按照不同产品进行分类并计算每个产品的销售总额。

腾讯云相关产品推荐:

  • 云服务器CVM(https://cloud.tencent.com/product/cvm):提供稳定可靠的云服务器实例,适用于托管网站、应用程序和数据库等各种计算需求。
  • 云数据库MySQL(https://cloud.tencent.com/product/cdb_mysql):提供高性能、可扩展和可靠的云数据库服务,适用于存储和管理大规模结构化数据。
  • 云函数SCF(https://cloud.tencent.com/product/scf):无服务器的事件驱动型计算服务,可让您以按需付费的方式运行代码,无需管理和扩展基础设施。

请注意,以上是仅供参考的腾讯云产品链接,您可以根据实际需求选择适合的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • grid web_DataGrid

    首先安装Infragistics.NetAdvantage.for.ASP.NET.2007.Vol.2,然后在选择项中添加UltraWebGrid,使用方法如下: 1、添加“总计”值 绑定完数据后,添加如下代码 UltraWebGrid1.Rows.Add(); UltraWebGrid1.Rows.Add(); UltraWebGrid1.Rows[UltraWebGrid1.Rows.Count – 1].Cells[0].Text = “小计”; //倒数第一行 UltraWebGrid1.Rows[UltraWebGrid1.Rows.Count – 2].Cells[0].Text = “总计”; double sum = 0; string strtemp = string.Empty; for (int i = 0; i < UltraWebGrid1.Rows.Count – 1; i++) { if (UltraWebGrid1.Rows[i].Cells[2].Value != null) { strtemp = UltraWebGrid1.Rows[i].Cells[2].Value.ToString(); sum += Convert.ToDouble(strtemp); } } UltraWebGrid1.Rows[UltraWebGrid1.Rows.Count – 1].Cells[2].Value = sum; 2、单击单元格选中行 (1) 选择UltraWebGrid-displayout–>CellClickActionDefault=RowSelected (2) 选择UltraWebGrid—displayout–>SelectedRowStyleDefault的BackColor属性,设置颜色。 3、显示自动列号 RowSelectorsDefault=”Yes” AllowRowNumberingDefault=”ByDataIsland” 4、隐藏一列 UltraWebGrid1.Columns[i].Hidden=true; 5、添加模板列 (即在绑定数据外,添加的列):先选择UltraWebGrid –属性–columns–勾选Templated column 即可。 6、增加Checkbox 第一种方法:在表格的InitializeRow事件中添加如下代码 if (e.Row.Band.Index == 0) { string str = string.Empty; str = “<input id=’chk” + e.Row.Index + “‘ type=’checkbox’ name=’chkName” + e.Row.Index + ” ‘ />”; e.Row.Cells[0].Text = str; } 第二种方法: 绑定数据后,添加 GridTake.Columns[0].Type = ColumnType.CheckBox; //设定第0列的数据类型 GridTake.Columns[0].AllowUpdate = AllowUpdate.Yes;//设置checkbox是否可用。 GridTake.Columns.FromKey(“CHK”).Type= ColumnType.CheckBox; GridTake.Columns.FromKey(“CHK”).AllowUpdate = AllowUpdate.Yes; for (int i = 0; i < GridTake.Rows.Count; i++) { GridTake.Rows[i].Cells[0].Value = false; //初始化checkbox } //全选checkbox protected void cbCheckAll_CheckedChanged(object sender, EventArgs e) { if (cbCheckAll.Checked) { for (int i = 0; i < GridTake.Rows.Count; i++) { GridTake.Rows[i].Cells[0].Value = true; } } else { for (int i = 0; i < GridTake.Rows.Count; i++) { GridTake.Rows[i].Cells[0].Value = false; } }

    03
    领券