求EXCEL VBA 程序:在EXCEL的A1到E1里分别有数据1,3,9,4,5。在A3到E3里分别有数据7,4

,5,6,8。现要对A3到E3里的数据从最大的开始进行SUM运算,直到SUM大于或等于20时结束SUM运算,要求在某一单元格里输出参与SUM运算的数据对应的上面的数值(即... ,5,6,8。现要对A3到E3里的数据从最大的开始进行SUM运算,直到SUM大于或等于20时结束SUM运算,要求在某一单元格里输出参与SUM运算的数据对应的上面的数值(即A1到E1中的数据)(用逗号隔开)。 展开
 我来答
帐号已注销
2011-09-08 · TA获得超过8616个赞
知道大有可为答主
回答量:3242
采纳率:66%
帮助的人:3146万
展开全部
Public Function iSums(iRes, Rng1 As Range, Rng2 As Range)
Application.Volatile
Dim tmp, arr1, arr2, i, j, s
If Not IsNumeric(iRes) Then tmp = "#iRes<>number": GoTo 1000
arr1 = Rng1.Rows(1)
arr2 = Rng2.Rows(1)
If UBound(arr1, 2) <> UBound(arr2, 2) Then tmp = "#Rng1<>Rng2": GoTo 1000
……
详细Hi我,给你完整代码
languanzeng
2011-09-08 · TA获得超过2288个赞
知道小有建树答主
回答量:1645
采纳率:0%
帮助的人:1910万
展开全部
Sub aa()
Dim i, c, k, str1
Set rng = Range("a3:e3")
i = 1

Do Until k >= 20
For Each c In rng
If c = Application.WorksheetFunction.Large(rng, i) Then
k = k + c
str1 = str1 & "," & Cells(1, c.Column)
Exit For
End If
Next c
i = i + 1
If i = rng.Count Then Exit Do
Loop
Range("a5") = Mid(str1, 2, Len(str1))
MsgBox "结果已输出至A5单元格: " & Mid(str1, 2, Len(str1))
End Sub
更多追问追答
追问
这插入后没有自定义函数?
追答
这不是自定义函数,是程序,必须手动执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jujusqg
2011-09-08 · TA获得超过1339个赞
知道小有建树答主
回答量:130
采纳率:0%
帮助的人:144万
展开全部

Sub aa()

    Dim i, j, a(5), b(5), t1, t2, t3, t4

    For i = 1 To 5

        a(i) = Cells(3, i)

        b(i) = i

    Next

    For i = 1 To 5

        For j = i + 1 To 5

            If a(i) < a(j) Then

                t1 = a(j): a(j) = a(i): a(i) = t1

                t2 = b(j): b(j) = b(i): b(i) = t2

            End If

        Next

    Next

    t3 = 0: t4 = ""

    For i = 1 To 5

        t3 = t3 + a(i)

        If t4 = "" Then

            t4 = cells(1,b(i))

        Else

            t4 = t4 & "," & cells(1,b(i))

        End If

        If t3 >= 20 Then Cells(5, 1) = t4: Exit For

    Next

End Sub

追问
这VBA运行时有问题?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hym5235492
2011-09-08 · 超过15用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:35.2万
展开全部
从最大的开始进行SUM运算,直到SUM大于或等于20时结束SUM运算。

—— 说的并不清楚,没法写代码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qpzrhvri3871
2011-09-08 · TA获得超过173个赞
知道答主
回答量:304
采纳率:0%
帮助的人:148万
展开全部
程序没有问题,可以输出S
调用格式类似:Call iSumLarge(25, Range("a2:j2"))
B130487,希望对你有用
追问
这不能做成自定义函数?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式