24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1482  |  回复: 10

VChang

木虫 (正式写手)

[求助] 选择某一范围内强度最大的数赋值,怎么用VB编程啊,谢谢

我想用VB编一个程序,就是某一范围内有几个数满足要求,我想选强度最大的数赋值。比如在13N偏差0.5的范围内有以下几组数据:

12.6         20
12.7         50
12.9         70
13.4                60
13.2                80


25.8               95
25.9               75
26               86
26.2              100
26.4              60
我想让80和100分别赋给13N(N=1和2时),请问怎么用VB编程使之适用于其余的13N的情况啊?本人不懂编程,烦请相助,若编好了可以追加金币至50个,谢谢!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anntoy

木虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
要求不太清楚,是不是只要左边是13N偏差0.5右边的就写成80或者100?

» 本帖已获得的红花(最新10朵)

2楼2012-09-14 08:30:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

VChang

木虫 (正式写手)

送鲜花一朵
引用回帖:
2楼: Originally posted by anntoy at 2012-09-14 08:30:44
要求不太清楚,是不是只要左边是13N偏差0.5右边的就写成80或者100?

不是的,比如在12.5~13.5,25.5~26.5,38.5~39.5等等的各个范围内都有几个数满足要求,如12.6,12.7,12.9,13.4,13.2等,这几个数分别对应一个纵坐标强度。然后我想选择这几个数对应的纵坐标强度最高的那个数赋值给13N。不是说只要左边是13N偏差0.5右边的就写成80或者100,而是根据一系列的13,26,39,52~~中最大值,不一定是80或者100,也许39中对应的最大值是90的,就是数太多了,不想一个个的找某一范围内对应的最大值。
谢谢你的关注,烦请相助。
3楼2012-09-14 11:30:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anntoy

木虫 (著名写手)

【答案】应助回帖

vb我这儿也没有编译环境,而且还要考虑输入输出,你可以用excel处理一下
未命名.PNG(104.03KB)
http://kuai.xunlei.com/d/GBKKHLEEQURE?p=130497
新建 Microsoft Excel 工作表.xlsx(11.8KB)
http://kuai.xunlei.com/d/GGUEPUMHWJFN?p=130497
4楼2012-09-15 09:26:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anntoy

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★
VChang: 金币+5, ★★★很有帮助, 谢谢,先给5个金币,要是能弄成EXCEL的宏就更好了。 2012-09-15 13:49:51
xzhdty: 金币+1, 谢谢参与 2012-09-15 20:29:08
你可以先看那个图片,区域1是你的数据,两列,我又添加了几项你的到时候会更多,区域2的内容都一样,填写一个就自动填充就好了,区域3是N的值,你写个1,剩下的向右拖自动填充也就好了,区域4是最后的结果的区域,也是一样的自动填充就好了,详细的内容可以参考一下那个excel
5楼2012-09-15 09:29:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

VChang

木虫 (正式写手)

引用回帖:
5楼: Originally posted by anntoy at 2012-09-15 09:29:22
你可以先看那个图片,区域1是你的数据,两列,我又添加了几项你的到时候会更多,区域2的内容都一样,填写一个就自动填充就好了,区域3是N的值,你写个1,剩下的向右拖自动填充也就好了,区域4是最后的结果的区域,也 ...

我这里数据很多,有几千个(都在13N的范围内,N从一到几百),要是能在Excel里的某一个sheet里一列显示13N范围内的强度最大值(如80,100),另一列显示这个强度对应的13N范围内的具体数(如13.2,26.2)就很好了。
6楼2012-09-15 13:56:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anntoy

木虫 (著名写手)

【答案】应助回帖


xzhdty: 金币+1, 谢谢参与 2012-09-16 21:15:48
Sub calc()
For N = 1 To 1000
    Max = 0
    For j = 1 To 2000
        If Sheets("sheet1".Cells(j, 1) > 13 * N - 0.5 And Sheets("sheet1".Cells(j, 1) < 13 * N + 0.5 Then
            If Sheets("sheet1".Cells(j, 2) > Max Then
                Max = Sheets("sheet1".Cells(j, 2)
            End If
        End If
    Next
    Sheets("sheet1".Cells(N, 3) = N
    Sheets("sheet1".Cells(N, 4) = Max
Next
End Sub
excel的宏,vb脚本,For N = 1 To 1000,这个1000是你的N的最大值,For j = 1 To 2000,这个2000是有多少行数据,你的数据要放在A列和B列,生成的C列数据是N的值,D列是你要的那个值
既然你说宏了,我想你应该知道怎么用吧,如果不会用,我晚上给你图片说明,现在网速不好,传不了
7楼2012-09-15 17:54:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anntoy

木虫 (著名写手)

引用回帖:
7楼: Originally posted by anntoy at 2012-09-15 17:54:16
Sub calc()
For N = 1 To 1000
    Max = 0
    For j = 1 To 2000
        If Sheets("sheet1".Cells(j, 1) > 13 * N - 0.5 And Sheets("sheet1".Cells(j, 1) < 13 * N + 0.5 The ...

CODE:
Sub calc()
For N = 1 To 1000
    Max = 0
    For j = 1 To 2000
        If Sheets("sheet1").Cells(j, 1) > 13 * N - 0.5 And Sheets("sheet1").Cells(j, 1) < 13 * N + 0.5 Then
            If Sheets("sheet1").Cells(j, 2) > Max Then
                Max = Sheets("sheet1").Cells(j, 2)
            End If
        End If
    Next
    Sheets("sheet1").Cells(N, 3) = N
    Sheets("sheet1").Cells(N, 4) = Max
Next
End Sub

8楼2012-09-15 17:56:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anntoy

木虫 (著名写手)

【答案】应助回帖

那个excel是我自己做的,里面的数据都是随机数据,打开之后,按Alt + F11,打开和图片上那个窗口,左边选sheet1,右边有那个脚本了,你可以修改一下N值和行号,然后按F5运行就可以了
一般的宏都是被禁止的,你可以菜单栏的“工具”>“宏”>“安全性”里把那个设置成低,然后关闭excel再打开就可以运行了

QQ截图20120915173618.png(32.16KB)
http://kuai.xunlei.com/d/GBPGSLPFWYDO?p=130497
新建 Microsoft Excel 工作表 (3).xls(79KB)
http://kuai.xunlei.com/d/GDPNGOQNGOQO?p=130497
9楼2012-09-15 18:04:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

VChang

木虫 (正式写手)

引用回帖:
9楼: Originally posted by anntoy at 2012-09-15 18:04:07
那个excel是我自己做的,里面的数据都是随机数据,打开之后,按Alt + F11,打开和图片上那个窗口,左边选sheet1,右边有那个脚本了,你可以修改一下N值和行号,然后按F5运行就可以了
一般的宏都是被禁止的,你可以 ...

谢谢帮助,但是你给的那个excel文件按F5没法运行,显示的是“定位” 对话框,请问怎么添加一个Private Sub CommandButton1_Click时间来开始怎个计算过程?还有一个问题是你的这个文件里最后给的值是13N里的N值,我希望能得到的是13N+-0.5范围内强度最大的数对应具体的13N值,谢谢!

QQ截图20120916153017.jpg

10楼2012-09-16 15:35:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 VChang 的主题更新
信息提示
请填处理意见