lzth.net
当前位置:首页 >> ExCEl 求助一个按指定条件求和的VBA >>

ExCEl 求助一个按指定条件求和的VBA

选中一个灰色的单元格,同时按Alt和F11进入宏界面,点菜单的插入,模块,粘贴如下代码:Sub aaa()MsgBox Selection.Interior.ColorIndexEnd Sub直接按F5运行此宏,得到一数字,这是灰色的VBA代码,记住它.再粘贴如下代码:Sub test()

用sumifs就可以嘛

可以用vba的字典法完成:Sub test()Set d= CreateObject("scripting.dictionary")r=Cells(Rows.count,1).end(3).rowarr=Range("A1:B" & r)Range("A1:B" & r).ClearContentFor i=1 to Ubound(arr) d(arr(i,1))=d(arr(i,1))+arr(i,2)Next y=d.keyst=d.itemsFor i =0 to ubound(y) Cells(i +1,1)=y(i) Cells(i +1,2)=t(i)Next End Sub

但是有个问题,行数和列数不一定.不用要用户去数据行列,可以用以下方式得到:nLR = ActiveSheet.Cells.SpecialCells(xlLastCell).Row '最后一行(与连续与否无关) nLC = ActiveSheet.Cells.SpecialCells(xlLastCell).Column '最后一列(与连续与否无关)

sub mesum()dim a as rangedim b as bytedim c as bytedim d as bytedim e as byteon error resume nextset a = application.inputbox("请用鼠标选择要求和的区域!", type:=8)b = a.end(xldown).row - a.row + 1c = a.end(xltoright).column - a.

可以用range().end(xlup).row取行数range().end(xltoleft).column取列数取到最右下角就简单了,自己构造一下就行了

数据在第2行起的BCDEFGH列,在I列对应的大行输出求和结果.Sub tongji() m = InputBox("输入统计求和的起始行(数字):") n = InputBox("输入统计求和的结束行(数字):") x = InputBox("输入统计求和的起始列(大写字母)

=SUBTOTAL()自己在EXCEL中按下F1键, 然后输入SUBTOTAL,好好学习一下!微妙无穷!改变 参数可实现你讲的要求.何必自己编一个? 另一个最简单的方法是(在EXCEL2010中):用套用单元格格式制作一个表格,在表格工具→格式中,把“汇总”选 上,最后一行的汇总中,就是用了这个公式!

假设你的上面表格默认是a1:c10.用数据裤函数实现,设定查找条件如下:批次 名称 76 a 条件的区域为b11:c12 然后在某个单元格输入=dcounta(a1:c10,“序号”, b11:c12 )即可.

工作表“具体情况”中的日期需要设定为日期 年/月/日 格式,且按日期排序. 工作表“总体情况”中的年份要按顺序列出.

网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com