ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 6278|回复: 11

选取任意几个数相乘后再相加,其中有0,如何编函数啊,举例,1,2,1,3,0,4选每三

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-11-2 21:00 | 显示全部楼层 |阅读模式
选取任意几个数相乘后再相加,其中有0,如何编函数啊,举例,1,2,1,3,0,4六个数选每三个相乘后再相加,如1*2*1+1*2*3.................+3*0*4
如果要是在15个数中选三个,公式是一样的吗?各位高手求助啊,急急急!!!看附件 新建 Microsoft Excel 工作表.rar (273 Bytes, 下载次数: 23)


TA的精华主题

TA的得分主题

发表于 2012-11-3 13:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不明白你要什么效果……

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-11-3 17:47 | 显示全部楼层
→友の良杰← 发表于 2012-11-3 13:27
不明白你要什么效果……

新建 Microsoft Excel 工作表.rar (310 Bytes, 下载次数: 15)
感谢回复,我再说明一下啊,发个附件

TA的精华主题

TA的得分主题

发表于 2012-11-4 01:07 | 显示全部楼层
★此时相逢★ 发表于 2012-11-3 17:47
感谢回复,我再说明一下啊,发个附件

3个数相乘后再相加,需要加几次?3个数是在这些数中随机取吗?还是需要一定的规律?

TA的精华主题

TA的得分主题

发表于 2012-11-4 02:46 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-11-4 02:48 | 显示全部楼层
本帖最后由 →友の良杰← 于 2012-11-4 14:26 编辑

代码如下:
[code=vb]
Private Sub CommandButton1_Click()
    Dim i, j, k, ir, sum, arr() As Integer
    Dim Str As String
    Dim r, rg As Range
    Set rg = Application.InputBox("请选择一个区域", "选择区域", Type:=8)
    ReDim arr(rg.Count) As Integer
    ir = 0
    '判断数据有效性,并初始化数组
    For Each r In rg
        If IsNumeric(r.Value) = False Then
            MsgBox ("你的选择有误,请确认选择都为数字!")
            Exit Sub
        End If
        arr(ir) = Val(r.Value)
        ir = ir + 1
    Next
    '调试数据
    'Debug.Print (UBound(arr))
    '计算表达式sum = sum + arr(i) * arr(k) * arr(j)
    For i = 0 To UBound(arr) - 1
        For j = i + 1 To UBound(arr) - 1
            For k = i + 2 To UBound(arr) - 1
                Str = Str & arr(i) & "*" & arr(j) & "*" & arr(k) & "+"
                sum = sum + arr(i) * arr(k) * arr(j)
                '在立即窗口输出数据
                Debug.Print ("i=" & i & "[" & arr(i) & "],j=" & j & "[" & arr(j) & "],k=" & k & "[" & arr(k) & "],sum=" & sum)
            Next
            i = i + 1
        Next
        i = i + 1
    Next
    Str = Left(Str, Len(Str) - 1)
    MsgBox Str & "=" & sum
End Sub
[/code]

TA的精华主题

TA的得分主题

发表于 2012-11-4 02:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
附上源文件

数组计算.rar (12.77 KB, 下载次数: 23)

TA的精华主题

TA的得分主题

发表于 2012-11-4 13:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 →友の良杰← 于 2012-11-4 13:30 编辑
→友の良杰← 发表于 2012-11-4 02:48
代码如下:



[code=vb]Str = Str & arr(i) & "*" & arr(k) & "*" & arr(j) & "+"[/code]


代码中这句话,K和J写反了,正确的如下


[code=vb]
Str = Str & arr(i) & "*" & arr(j) & "*" & arr(k) & "+"
[/code]

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-11-4 23:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
→友の良杰← 发表于 2012-11-4 02:51
附上源文件

兄弟感谢您的回答,您给我的好像有点小问题,我在给您发一个附件,你看看,在帮我写一下,我对宏基本上不懂,告诉我在excle里怎么用这个,谢谢 新建 Microsoft Excel 工作表 (2).rar (5.32 KB, 下载次数: 10)

TA的精华主题

TA的得分主题

发表于 2012-11-5 00:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
2012-11-05 00 31 39.png

数组计算.rar (11.86 KB, 下载次数: 28)

[code=vb]
Private Sub CommandButton1_Click()
    Dim i, j, k, ir  As Integer
    Dim sum, arr() As Double
    Dim Str As String
    Dim r, rg As Range
    Set rg = Application.InputBox("请选择一个区域", "选择区域", Type:=8)
    ReDim arr(rg.Count) As Double
    ir = 0
    '判断数据有效性,并初始化数组
    For Each r In rg
        If IsNumeric(r.Value) = False Then
            MsgBox ("你的选择有误,请确认选择都为数字!")
            Exit Sub
        End If
        arr(ir) = Val(r.Value)
        ir = ir + 1
    Next
    '调试数据
    'Debug.Print (UBound(arr))
    '计算表达式sum = sum + arr(i) * arr(k) * arr(j)
    For i = 0 To UBound(arr) - 1
        For j = i + 1 To UBound(arr) - 1
            For k = i + 2 To UBound(arr) - 1
                Str = Str & arr(i) & "*" & arr(j) & "*" & arr(k) & "+"
                sum = sum + arr(i) * arr(k) * arr(j)
                '在立即窗口输出数据
                Debug.Print ("i=" & i & "[" & arr(i) & "],j=" & j & "[" & arr(j) & "],k=" & k & "[" & arr(k) & "],sum=" & sum)
            Next
            i = i + 1
        Next
        i = i + 1
    Next
    Str = Left(Str, Len(Str) - 1)
    MsgBox Str & "=" & sum
End Sub
[/code]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 19:32 , Processed in 0.038053 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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