| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2722 人关注过本帖
标题:谁能解决这个超级绕的难题
只看楼主 加入收藏
shi7361
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2019-7-12
结帖率:60%
收藏
 问题点数:0 回复次数:6 
谁能解决这个超级绕的难题
用函数、vba都可以,每每手工计算太浪费时间了;
22.rar (11.47 KB)
搜索更多相关主题的帖子: 超级 难题 vba 计算 时间 
2019-07-12 16:19
shi7361
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2019-7-12
收藏
得分:0 
期待高手出现!
2019-07-13 08:00
Cyberoe2
Rank: 2
等 级:论坛游民
威 望:3
帖 子:16
专家分:45
注 册:2019-8-9
收藏
得分:0 
新手试试看
2019-08-23 18:23
Cyberoe2
Rank: 2
等 级:论坛游民
威 望:3
帖 子:16
专家分:45
注 册:2019-8-9
收藏
得分:0 
程序代码:
Sub Get_Result()
        Dim a As Integer
        Dim b As Integer
        Dim c As Integer
        Dim d As Integer
        
        Dim sum1 As Single '样本求和
        Dim sum2 As Single
        Dim gap1 As Single '差值
        Dim gap2 As Single
        Dim res1 As Single
        Dim res2 As String
        Dim i As Integer            'loop
        
        For i = 18 To 28
             a = Sheet2.Cells(8, i).Value
             b = Sheet2.Cells(8, i + 1).Value
             c = Sheet2.Cells(9, i).Value
             d = Sheet2.Cells(9, i + 1).Value
             
             sum1 = a + b
             sum2 = c + d
             'case1
             If (sum1 <= 60 And sum1 >= 0 And sum2 >= 602) Or _
                     (sum1 >= 602 And sum2 <= 60 And sum2 >= 0) Then
                     If a - b > 0 Then
                             gap1 = 30 - a
                     Else: gap1 = 30 - b
                     End If
                     If c - d > 0 Then
                             gap2 = d - 300
                     Else: gap2 = c - 300
                     End If
                     If gap1 - gap2 > 0 Then
                             res1 = sum2 / 2 * 100
                     Else: res1 = sum1 / 2 * 10
                     End If
                     Sheet2.Cells(10, i).Value = res1
             End If
            
             'case2
             If sum1 = 0 And sum2 = 0 Then
                     res2 = "<10"
                     Sheet2.Cells(10, i).Value = res2
             End If
             
             'case3
             If sum1 <= 60 And sum2 <= 60 Then
                     res1 = sum1 / 2 * 10
                     Sheet2.Cells(10, i).Value = res1
             End If
             
             'case4
             If sum1 >= 60 And sum1 <= 600 And sum2 >= 60 And sum2 <= 600 Then
                     res1 = (sum1 + sum2) * 1000 / 22
                     Sheet2.Cells(10, i).Value = res1
             End If
             
             'case5
            If sum1 >= 60 And sum1 <= 600 And ((sum2 <= 60 And sum2 >= 0) Or sum2 >= 600) Then
                    res1 = sum1 / 2 * 10
                    Sheet2.Cells(10, i).Value = res1
             ElseIf sum2 >= 60 And sum2 <= 600 And ((sum1 <= 60 And sum1 >= 0) Or sum1 >= 600) Then
                     res1 = sum2 / 2 * 100
                     Sheet2.Cells(10, i).Value = res1
             End If
             
             'case6
             If sum1 > 600 And sum2 > 600 Then
                     res1 = sum2 * 2 * 100
                     Sheet2.Cells(10, i).Value = res1
             End If
             i = i + 1
        Next i
End Sub
2019-08-23 20:07
Cyberoe2
Rank: 2
等 级:论坛游民
威 望:3
帖 子:16
专家分:45
注 册:2019-8-9
收藏
得分:0 
回复 4楼 Cyberoe2
图片附件: 游客没有浏览图片的权限,请 登录注册
2019-08-23 20:09
chairan
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-4-23
收藏
得分:0 
给你写了一个自定义函数 ,只要第一个参数是10倍的样品第二个是100倍的样品数据就可以随意用了,单元格位置任意了,你可以创建更美观的表格
22自定义函数版.zip (55.09 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2019-9-4 00:48编辑过]

2019-09-04 00:46
Cyberoe2
Rank: 2
等 级:论坛游民
威 望:3
帖 子:16
专家分:45
注 册:2019-8-9
收藏
得分:0 
回复 6楼 chairan
如果能共享编码思路就更好!^_^
2019-09-17 18:00
快速回复:谁能解决这个超级绕的难题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028918 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved