24小时热门版块排行榜    

CyRhmU.jpeg
查看: 498  |  回复: 3
当前主题已经存档。

lygxxm

至尊木虫 (正式写手)

[交流] 【求助】计算机高手改写一下程序

本人因工作需要,需要改写下面的程序,下面的程序在excel中用,用VBA编写的,要求根据输入的数字(比如95),填写在相应单元格里随机生成的数字是70,80,90,100中的一个,填写的12个单元格里的数和的平均正好是95(四舍五入)。谢谢了!



Function createdata(k)
Dim datanew(1 To 1, 1 To 12) As Integer
Dim dataend(1 To 1, 1 To 12) As Integer
Dim i As Integer
Dim j As Integer
Dim l As Integer
Dim grade As Integer
Dim sum As Integer
Dim aver As Integer
Dim control As Integer
grade = Cells(k, 33)
If grade > 90 Then
l = 102 - grade
Else
l = 10
End If
For i = 1 To 12
datanew(1, i) = Int(l * Rnd) + grade
dataend(1, i) = datanew(1, i)
sum = sum + datanew(1, i)
Next i
aver = sum / 12
j = aver - grade
If j > 0 Then
For i = 1 To 12
dataend(1, i) = datanew(1, i) - j
Next i
End If
If j < 0 Then
For i = 1 To 12
dataend(i, 1) = datanew(i, 1) + j
Next i
End If
Range(Cells(k, 3), Cells(k, 18)) = dataend
End Function

[ Last edited by 2007骑猪逛街 on 2008-1-8 at 20:37 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dwjnet

木虫 (正式写手)

很奇怪的描述,几乎不能理解


输入dataIn

总和=dataIn*12

[ Last edited by dwjnet on 2008-3-4 at 18:09 ]
小木虫
2楼2008-03-04 18:04:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jingtaocst

银虫 (小有名气)

改写成什么样啊?
3楼2008-03-26 08:50:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

loujing

铁杆木虫 (正式写手)

★ ★ ★ ★ ★
sinapdb(金币+5,VIP+0):thanks
程序没有问题啊,只要把
Range(Cells(k, 3), Cells(k, 18)) = dataend
改成Range(Cells(k, 3), Cells(k, 14)) = dataend
就可以了。
k是行号,你可以把grade = Cells(k, 33)
改成grade = Cells(k, 1),那么在(k,1)输入95,
从(k,3)到(k,14)里面就显示12个数了,而且平均值是95。
4楼2008-06-13 03:43:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lygxxm 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见