excelvba吧 关注:263贴子:260
  • 4回复贴,共1

if 函数怎么用变量做逻辑条件

只看楼主收藏回复

a = InputBox("要显示进(退)步多少名的学生?", "名次变化选择", 50)
cs = InputBox("这次是第几次考试", "考试次数选择", 2)
For j = 3 To 8
Worksheets(j).Activate
For i = 7 To 60
If Cells(i, 3 * cs + 2) - Cells(i, 3 * (cs - 1) + 2) > a Then
Cells(i, 3 * cs + 2).Interior.Color = RGB(255, 0, 0)
End If
Next
Next
在表格里有多次考试成绩,我希望把这次考试与上次考试名次相差多少名的加亮显示,a是选择名次的,可是这运行后背景颜色没有变。 为什么?是不是>a那不能这么写?还是 then 后面那句错了?


IP属地:浙江1楼2018-11-17 10:12回复
    主要问题在于inputbox函数,你看函数的参数,inputbox( 参数1,参数2,…) as String,意思这个函数默认输出为字符串.代码修改为:|
    a = Val(InputBox("要显示进(退)步多少名的学生?", "名次变化选择", 50))
    cs = Val(InputBox("这次是第几次考试", "考试次数选择", 2))
    For j = 3 To 8
    Worksheets(j).Activate
    For i = 7 To 60
    If Cells(i, 3 * cs + 2) - Cells(i, 3 * (cs - 1) + 2) > a Then
    Cells(i, 3 * cs + 2).Interior.Color = RGB(255, 0, 0)
    End If
    Next
    Next
    或者修改为:
    a = Application.InputBox(prompt:="要显示进(退)步多少名的学生?", _
    Title:="名次变化选择", Default:=50, Type:=1)
    cs = Application.InputBox(prompt:="这次是第几次考试", _
    Title:="考试次数选择", Default:=2, Type:=1)
    For j = 3 To 8
    Worksheets(j).Activate
    For i = 7 To 60
    If Cells(i, 3 * cs + 2) - Cells(i, 3 * (cs - 1) + 2) > a Then
    Cells(i, 3 * cs + 2).Interior.Color = RGB(255, 0, 0)
    End If
    Next
    Next


    IP属地:广东2楼2018-12-15 12:45
    收起回复
      夸贴吧跟你聊天 你这个要求 那就机械革命x8ti 或者x8tip吧 这款机器在万元内散热无敌 而且是同方的子品牌 质量和售后都没问题 这款机器算是比较完美的了 可以加装机械 win7什么的都没问题 对购机有疑问可以看我⑧⑧头⑧⑧像


      来自Android客户端3楼2018-12-24 11:10
      回复
        赞一个


        IP属地:浙江4楼2020-06-01 15:47
        回复