Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 14093|回复: 7

[已解决]如何在VBA中使用SUMIF函数

[复制链接]
发表于 2013-8-16 21:27 | 显示全部楼层 |阅读模式
如何在VBA中生成公式,使G13=SUMIF(H7:H12,"设备",G7:G12)

I定义为输入公式上一个单元格行号
=SUMIF(cellS(7,8):cellS(I,8),"设备",cellS(7,7):celSl(I,7))*2.21%
最佳答案
2013-8-16 22:02
cxloen 发表于 2013-8-16 21:57
基本正确,谢谢,但设备要写成“设备”才能运行,怎么加?

失误了,请再测试!{:1812:}
  1. Sub test()
  2.     Dim i As Long
  3.     i = 12
  4.     Cells(13, "G") = "=SUMIF(H7:H" & i & ",""设备"",I7:I" & i & ")*2.21%"
  5. End Sub
复制代码

SUMIF在VBA中的实现.zip

8.82 KB, 下载次数: 10

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-8-16 21:46 | 显示全部楼层
这个意思吗?{:2312:}
  1. Sub test()
  2.     Dim i As Long
  3.     i = 12
  4.     Cells(13, "G") = "=SUMIF(H7:H" & i & ",设备,I7:I" & i & ")*2.21%"
  5. End Sub
复制代码
回复

使用道具 举报

发表于 2013-8-16 21:49 | 显示全部楼层
这两种用法都可以
Sub sumif用法()
Range("h13") = "=SUMIF(H7:H12,""设备"",G7:G12)"
Range("h14") = Application.SumIf(Range("h7:h12"), "设备", Range("g7:g12"))
End Sub
回复

使用道具 举报

 楼主| 发表于 2013-8-16 21:57 | 显示全部楼层
windimi007 发表于 2013-8-16 21:46
这个意思吗?

基本正确,谢谢,但设备要写成“设备”才能运行,怎么加?
回复

使用道具 举报

 楼主| 发表于 2013-8-16 21:58 | 显示全部楼层
lyf7276 发表于 2013-8-16 21:49
这两种用法都可以
Sub sumif用法()
Range("h13") = "=SUMIF(H7:H12,""设备"",G7:G12)"

谢谢,我要加入变量才行
回复

使用道具 举报

发表于 2013-8-16 22:02 | 显示全部楼层    本楼为最佳答案   
cxloen 发表于 2013-8-16 21:57
基本正确,谢谢,但设备要写成“设备”才能运行,怎么加?

失误了,请再测试!{:1812:}
  1. Sub test()
  2.     Dim i As Long
  3.     i = 12
  4.     Cells(13, "G") = "=SUMIF(H7:H" & i & ",""设备"",I7:I" & i & ")*2.21%"
  5. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
xinfamily@vip.q + 1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-8-16 22:04 | 显示全部楼层
windimi007 发表于 2013-8-16 22:02
失误了,请再测试!

谢谢,可以了,多谢老师

点评

千万别叫老师,谢谢。  发表于 2013-8-16 22:07
回复

使用道具 举报

发表于 2019-10-8 17:28 | 显示全部楼层
windimi007 发表于 2013-8-16 22:02
失误了,请再测试!{:1812:}

老师您好,
   如果 A3:A100000= 3组   并且 B3:B100000 > 60    则  A1= 符合条件的C 列之和。
Range("A1") = Application.WorksheetFunction.SumIfs(Sheet17.Range("C3:C100000"), Sheet17.Range("a3:a100000"), "3组", Sheet17.Range("b3:b100000"), ">60")
  上述代码是对的

  问题
    如果 A3:A100000= 3组  or   A3:A100000= 2组   并且 B3:B100000 > 60    则  A1= 符合条件的C 列之和。
  应该怎么写??? 谢谢   
VBA自带的函数从来没有用过,决定挺好用的。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 10:15 , Processed in 0.352880 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表