Excel精英培训网

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

[已解决]请问改表达式怎么比大小 谢谢。。

[复制链接]
发表于 2016-4-20 20:33 | 显示全部楼层 |阅读模式
    If Cells(i, 2) Like "DN*"  And Cells(i, 2) Like "×*" Then
此VBA 只是对满足DN和×进行条件判断
那请问我如何对 DN后面的变量进行比大小判断
    If Cells(i, 2) Like 0 > "DN*" < 150 And Cells(i, 2) Like 0 > "×*" < 8.2 Then
这样写貌似不对
我就是想对 DN后面数字进行判断和×后面数字进行判断
如上面红色标记处
如 DN后面数字在(0到150之间)和×后面数字(在0到8.2之间)则进行条件判断!
求解谢谢


最佳答案
2016-4-20 21:04
本帖最后由 lichuanboy44 于 2016-4-20 21:06 编辑

不是一两句就能搞定的
  1. Sub try()
  2.     For i = 1 To 5
  3.         s = Cells(i, 2)
  4.         If s Like "DN*" Then
  5.             ss = Val(Replace(s, "DN", ""))
  6.             If ss > 0 And ss < 150 Then
  7.                 MsgBox ss & "为0-150"
  8.             Else
  9.                 MsgBox ss & "不为0-150"
  10.             End If
  11.         ElseIf s Like "×*" Then
  12.             ss = Val(Replace(s, "×", ""))
  13.             If ss > 0 And ss < 8.2 Then
  14.                 MsgBox ss & "为0-8.2"
  15.             Else
  16.                 MsgBox ss & "不为0-8.2"
  17.             End If
  18.         End If
  19.     Next
  20. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-4-20 21:04 | 显示全部楼层    本楼为最佳答案   
本帖最后由 lichuanboy44 于 2016-4-20 21:06 编辑

不是一两句就能搞定的
  1. Sub try()
  2.     For i = 1 To 5
  3.         s = Cells(i, 2)
  4.         If s Like "DN*" Then
  5.             ss = Val(Replace(s, "DN", ""))
  6.             If ss > 0 And ss < 150 Then
  7.                 MsgBox ss & "为0-150"
  8.             Else
  9.                 MsgBox ss & "不为0-150"
  10.             End If
  11.         ElseIf s Like "×*" Then
  12.             ss = Val(Replace(s, "×", ""))
  13.             If ss > 0 And ss < 8.2 Then
  14.                 MsgBox ss & "为0-8.2"
  15.             Else
  16.                 MsgBox ss & "不为0-8.2"
  17.             End If
  18.         End If
  19.     Next
  20. End Sub
复制代码

Book1.zip

8 KB, 下载次数: 6

回复

使用道具 举报

 楼主| 发表于 2016-4-20 21:19 | 显示全部楼层
lichuanboy44 发表于 2016-4-20 21:04
不是一两句就能搞定的

你好DN变量×变量 是这样的- -求解。。
已上传附件谢谢
计算表.rar (8.94 KB, 下载次数: 9)
回复

使用道具 举报

发表于 2016-4-20 22:09 | 显示全部楼层
Sub try()
    '将数据一次性写入数组,判断分析后,再一次性写入工作表,速度较快
    '你示例数据在A列,但原程序的语句Cells(i, 2)在B列,自己结合实际修改
    Dim br
    Row1 = Range("A65536").End(xlUp).Row
    arr = Range("A2:A" & Row1)
    ReDim br(1 To Row1 - 1, 1 To 1)
    For i = 1 To Row1 - 1
        s = arr(i, 1)     '原为s = Cells(i, 1)
        If s Like "DN*" And s Like "*×*" Then
            p = InStr(3, s, "×")
            a = Val(Mid(s, 3, p - 1))
            b = Val(Mid(s, p + 1, Len(s) - p))
            If a > 0 And a < 150 And b > 0 And b < 8.2 Then
                br(i, 1) = "末端"     'Cells(i, 5) = "末端"
            End If
        End If
    Next
    [E2].Resize(Row1 - 1, 1) = br
End Sub
回复

使用道具 举报

发表于 2016-4-20 22:14 | 显示全部楼层
ccc919 发表于 2016-4-20 21:19
你好DN变量×变量 是这样的- -求解。。
已上传附件谢谢

试试

计算表.zip

10.67 KB, 下载次数: 11

回复

使用道具 举报

 楼主| 发表于 2016-4-20 22:25 | 显示全部楼层
lichuanboy44 发表于 2016-4-20 22:09
Sub try()
    '将数据一次性写入数组,判断分析后,再一次性写入工作表,速度较快
    '你示例数据在A列 ...

谢谢经过部分修改完美解决我的问题了谢谢
回复

使用道具 举报

 楼主| 发表于 2016-4-20 22:28 | 显示全部楼层
pengyx 发表于 2016-4-20 22:14
试试

谢谢你的方法,我借鉴了下。都不错谢谢了!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 02:26 , Processed in 0.380377 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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