楼主: 聪宝宝
1159 4

[其他] 50金币求VBA实现枚举算法 [推广有奖]

  • 0关注
  • 0粉丝

本科生

50%

还不是VIP/贵宾

-

威望
0
论坛币
27198 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1088 点
帖子
85
精华
0
在线时间
91 小时
注册时间
2011-8-1
最后登录
2019-9-6

楼主
聪宝宝 发表于 2012-9-7 13:50:12 |AI写论文
50论坛币

我想用VBA做个枚举的算法,三个变量a,b,c 步长0.1,约束是a+b+c=1.a,b,c属于[0,1]

思路是这样的

      

代码:

Sub meiju()

Set a = Range("i1:i100")                     '选择输出区间

Set b = Range("j1:j100")

Set c = Range("k1:k100")

a = 0                                       '定义初始值

b = 0

c = 1 - a - b

If c = 0 Then                              '程序主体

a = a + 0.1

ElseIf a = 1 Then

End

Else

For i = 1 To n

a(i) = a

b(i) = b + 0.1

c(i) = 1 - a(i) - b(i)

Next i

End If

End Sub

做完之后显示不出结果,测试通过,能不能帮我看下有什么问题,谢谢。我想要的效果是这样的

求高手帮忙~

附件: 你需要登录才可以下载或查看附件。没有帐号?我要注册

最佳答案

287816895 查看完整内容

Sub a() Dim a, b, c a = 0 b = 0 d = 0 For a = 0 To 1 step[0.1] For b = 0 To 1 step[0.1] c = 1 - a - b d = d + 1 Cells(d, 1) = a Cells(d, 2) = b Cells(d, 3) = c If c
关键词:50金币 VBA range Then else 程序

沙发
287816895 发表于 2012-9-7 13:50:13
Sub a()
Dim a, b, c
a = 0
b = 0
d = 0
For a = 0 To 1 step[0.1]
    For b = 0 To 1 step[0.1]
        c = 1 - a - b
        d = d + 1
        Cells(d, 1) = a
        Cells(d, 2) = b
        Cells(d, 3) = c
        If c <0.09 Then
        Exit For
        Else
        End If
    Next
Next
End Sub

藤椅
denkey 发表于 2012-9-7 14:19:44
这个,有点看不懂

板凳
flatron 发表于 2012-9-10 10:50:20
附件和你要求的输出一致
附件: 你需要登录才可以下载或查看附件。没有帐号?我要注册

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

本版微信群
扫码
拉您进交流群
GMT+8, 2026-1-15 23:16