Excel精英培训网

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

[已解决]VB编写一个函数过程

[复制链接]
发表于 2016-3-2 10:01 | 显示全部楼层 |阅读模式
VB编写一个函数过程:

判断一个已知数m是否完数(完数是指该数本身等于它各个因子之和,如6=1+2+3,6就是一个完数;

主调程序调用此函数求出1000以内的所有完数,并把所求完数显示出来

函数形式为:function ws(byval m%) as boolean


最佳答案
2016-3-2 10:21
不是要返回数字么  as 布尔值的话就返回true  false了
  1. Function ws(ByVal m%) '=ws(row(a1)) 下拉
  2. Dim x%, y%, z%, r%, arr()
  3. For x = 1 To 1000
  4.     z = 0
  5.     For y = 1 To x \ 2
  6.         If x Mod y = 0 Then z = z + y
  7.     Next
  8.     If x = z Then
  9.          r = r + 1
  10.          ReDim Preserve arr(1 To 1, 1 To r)
  11.          arr(1, r) = x
  12.     End If
  13. Next
  14. ws = arr(1, m)
  15. End Function
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-3-2 10:21 | 显示全部楼层    本楼为最佳答案   
不是要返回数字么  as 布尔值的话就返回true  false了
  1. Function ws(ByVal m%) '=ws(row(a1)) 下拉
  2. Dim x%, y%, z%, r%, arr()
  3. For x = 1 To 1000
  4.     z = 0
  5.     For y = 1 To x \ 2
  6.         If x Mod y = 0 Then z = z + y
  7.     Next
  8.     If x = z Then
  9.          r = r + 1
  10.          ReDim Preserve arr(1 To 1, 1 To r)
  11.          arr(1, r) = x
  12.     End If
  13. Next
  14. ws = arr(1, m)
  15. End Function
复制代码

评分

参与人数 2 +11 收起 理由
神隐汀渚 + 5 不明觉厉
vbyou127 + 6 来学习

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 15:15 , Processed in 0.318969 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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