ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: secowu

[已解决] 错行对应求和..........

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-8-31 17:09 | 显示全部楼层

回复 20楼 secowu 的帖子

secowu ,看看是不是这样的结果

test1.rar

9.27 KB, 下载次数: 2

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-31 17:18 | 显示全部楼层
原帖由 zhangjimfu 于 2010-8-31 17:09 发表
secowu ,看看是不是这样的结果

非常感谢,为何这样加了下,算出来的都是15?

  1. Sub sumproduct()
  2.      Dim i As Integer
  3.      Dim row As Integer
  4.      Dim sum As Integer
  5.      On Error Resume Next
  6.      row = 2
  7.      For j = 3 To ActiveSheet.UsedRange.Columns.Count
  8.      For i = 1 To ActiveSheet.Cells(Rows.Count, 1).End(3).row Step 2
  9.           sum = sum + Cells(i + 2, 1) * Cells(row, j)
  10.           row = row + 2
  11.      Next i
  12.            Cells(6, j) = sum
  13.      Next j
  14. End Sub
复制代码

[ 本帖最后由 secowu 于 2010-8-31 17:22 编辑 ]
2010-08-31_172155.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-31 17:25 | 显示全部楼层
原帖由 secowu 于 2010-8-31 17:18 发表

非常感谢,为何这样加了下,算出来的都是15?
Sub sumproduct()
     Dim i As Integer
     Dim row As Integer
     Dim sum As Integer
     On Error Resume Next
     row = 2
     For j = 3 To Acti ...

算出来都一样,原来是忘记变量再初始化了。不好意思。

  1. Sub sumproduct()
  2.      Dim i As Integer
  3.      Dim row As Integer
  4.      Dim sum As Integer
  5.      On Error Resume Next
  6.      row = 2
  7.      For j = 3 To ActiveSheet.UsedRange.Columns.Count
  8.      For i = 1 To ActiveSheet.Cells(Rows.Count, 1).End(3).row Step 2
  9.           sum = sum + Cells(i + 2, 1) * Cells(row, j)
  10.           row = row + 2
  11.      Next i
  12.            Cells(6, j) = sum
  13.            i = 1
  14.            row = 2
  15.            sum = 0
  16.      Next j
  17. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2010-8-31 17:49 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-31 20:20 | 显示全部楼层
原帖由 zhangjimfu 于 2010-8-31 17:49 发表
哈哈、、吃饭刚回来

谢谢,辛苦了。
那个value的原因是因为“”的值。
看来,得从其它地方处理这个“”了

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-31 20:32 | 显示全部楼层
原帖由 zhangjimfu 于 2010-8-31 17:49 发表
哈哈、、吃饭刚回来

看这个附件,两个问题:
1、value错误
2、这种直接等于的公式表示有没有数量限制,同样,换为sumproduct之前测试是否也有数量限制。如果是,何解?

new.rar

10.35 KB, 下载次数: 1

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-31 20:35 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-31 20:39 | 显示全部楼层
第一个过程修改一句,忘记写变量上去了
原来的

  1. For i = 1 To 3 Step 2
复制代码
修改为:

  1. For i = 1 To k Step 2
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-31 21:01 | 显示全部楼层
原帖由 secowu 于 2010-8-31 20:20 发表

谢谢,辛苦了。
那个value的原因是因为“”的值。
看来,得从其它地方处理这个“”了

解决了,感谢zhangjimfu的热心帮助。


  1. Option Explicit
  2. option private module
  3. Sub mSumproductAddress()
  4.     Dim i, j, k As Integer
  5.     Dim row As Integer
  6.     Dim mSum As String
  7.     On Error Resume Next
  8.     row = 2
  9.     k = ActiveSheet.Cells(Rows.Count, 1).End(3).row + 2
  10.     For j = 3 To ActiveSheet.UsedRange.Columns.Count
  11.         For i = 1 To k - 4 Step 2

  12.             mSum = mSum & Cells(i + 2, 1).Address(RowAbsolute:=False, ColumnAbsolute:=False) & "*" & Cells(row, j).Address(RowAbsolute:=False, ColumnAbsolute:=False) & "+"
  13.             row = row + 2
  14.         Next i
  15.         Cells(k, j) = "=" & Left(mSum, Len(mSum) - 1)
  16.         i = 1
  17.         row = 2
  18.         mSum = ""
  19.     Next j
  20. End Sub

  21. Sub mSumproduct()
  22.      Dim i, j, k As Integer
  23.      Dim row As Integer
  24.      Dim mSum As Integer
  25.      On Error Resume Next
  26.      row = 2
  27.      k = ActiveSheet.Cells(Rows.Count, 1).End(3).row + 1
  28.      For j = 3 To ActiveSheet.UsedRange.Columns.Count
  29.      For i = 1 To ActiveSheet.Cells(Rows.Count, 1).End(3).row Step 2
  30.           mSum = mSum + Cells(i + 2, 1) * Cells(row, j)
  31.           row = row + 2
  32.      Next i
  33.            Cells(k, j) = mSum
  34.            i = 1
  35.            row = 2
  36.            mSum = 0
  37.      Next j
  38. End Sub

  39. Sub temp()
  40.     Call mSumproduct
  41.     Call mSumproductAddress
  42. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-31 21:18 | 显示全部楼层
只能到这么多个了,再加一个就溢出了。

  1. =A3*C2+A5*C4+A7*C6+A9*C8+A11*C10+A13*C12+A15*C14+A17*C16+A19*C18+A21*C20+A23*C22+A25*C24+A27*C26+A29*C28+A31*C30+A33*C32+A35*C34+A37*C36+A39*C38+A41*C40+A43*C42+A45*C44+A47*C46+A49*C48+A51*C50+A53*C52+A55*C54+A57*C56+A59*C58+A61*C60+A63*C62+A65*C64+A67*C66+A69*C68+A71*C70+A73*C72+A75*C74+A77*C76+A79*C78+A81*C80+A83*C82+A85*C84+A87*C86+A89*C88+A91*C90+A93*C92+A95*C94+A97*C96+A99*C98+A101*C100+A103*C102+A105*C104+A107*C106+A109*C108+A111*C110+A113*C112+A115*C114+A117*C116+A119*C118+A121*C120+A123*C122+A125*C124+A127*C126+A129*C128+A131*C130+A133*C132+A135*C134+A137*C136+A139*C138+A141*C140+A143*C142+A145*C144+A147*C146+A149*C148+A151*C150+A153*C152+A155*C154+A157*C156+A159*C158+A161*C160+A163*C162+A165*C164+A167*C166+A169*C168+A171*C170+A173*C172+A175*C174+A177*C176+A179*C178+A181*C180+A183*C182+A185*C184+A187*C186+A189*C188+A191*C190+A193*C192+A195*C194+A197*C196+A199*C198+A201*C200+A203*C202+A205*C204+A207*C206+A209*C208+A211*C210+A213*C212+A215*C214+A217*C216+A219*C218+A221*C220+A223*C222+A225*C224+A227*C226+A229*C228+A231*C230+A233*C232+A235*C234+A237*C236+A239*C238+A241*C240+A243*C242+A245*C244+A247*C246+A249*C248+A251*C250+A253*C252+A255*C254+A257*C256+A259*C258+A261*C260+A263*C262+A265*C264+A267*C266+A269*C268+A271*C270+A273*C272+A275*C274+A277*C276+A279*C278+A281*C280+A283*C282+A285*C284+A287*C286+A289*C288+A291*C290+A293*C292+A295*C294+A297*C296+A299*C298+A301*C300
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-13 03:55 , Processed in 0.049522 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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