ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 267|回复: 10

[求助] 判断个数是否有误

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-9-2 12:46 | 显示全部楼层 |阅读模式
各位老师,工作中要核对数据正确性,有什么办法可以快速核对呢?
A、B两列数据,需要核对指示符个数和用量是否一致


image.png

image.png

个数判断.rar

12.53 KB, 下载次数: 15

TA的精华主题

TA的得分主题

发表于 2024-9-2 12:54 | 显示全部楼层
取巧的方法,适用范围窄。
  1. Sub test()
  2. s = "R4,R5-R7"
  3. s = Replace(s, "-", ":")
  4. If Not s Like "*,*" Then If Not s Like "*:*" Then s = s & ":" & s
  5. Debug.Print Range(s).Count
  6. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-9-2 12:58 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-9-2 13:00 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-9-2 13:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
limonet 发表于 2024-9-2 13:00
好吧,我电脑的问题。

你今天又做了一次雷锋。

TA的精华主题

TA的得分主题

发表于 2024-9-2 13:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ykcbf1100 发表于 2024-9-2 13:22
你今天又做了一次雷锋。

雷锋永远在我心中。

TA的精华主题

TA的得分主题

发表于 2024-9-2 13:42 | 显示全部楼层
  1. Sub test()
  2. Dim reGxp As Object, Arr, i&, j&, tmPobj As Object, m As Object, x, a, b
  3. Set reGxp = CreateObject("vbScript.regExp")
  4. reGxp.Global = True
  5. reGxp.Pattern = "(\d+)(\-\D+(\d+))?"
  6. i = Cells(Rows.Count, "A").End(3).Row
  7. Arr = [a1].Resize(i, 4)
  8. With reGxp
  9.     For i = 2 To UBound(Arr, 1)
  10.         If .test(Arr(i, 2)) Then
  11.             x = 0
  12.             Set tmPobj = .Execute(Arr(i, 2))
  13.             For Each m In tmPobj
  14.                 If m.submatches(2) & "" <> "" Then
  15.                     x = x + 1 + Val(m.submatches(2)) - Val(m.submatches(0))
  16.                 Else
  17.                     x = x + 1
  18.                 End If
  19.             Next m
  20.             Arr(i, 3) = x
  21.         End If
  22.         Arr(i, 4) = IIf(Arr(i, 1) = Arr(i, 3), "对", "X")
  23.     Next i
  24. End With
  25. [a1].Resize(UBound(Arr, 1), UBound(Arr, 2)) = Arr
  26. End Sub
复制代码

0.jpg

TA的精华主题

TA的得分主题

发表于 2024-9-2 14:20 | 显示全部楼层
写一个自定义函数,直接在excel表里面对照就行了
自定义函数.jpg
函数计算.jpg

TA的精华主题

TA的得分主题

发表于 2024-9-2 19:28 | 显示全部楼层
Option Explicit
Sub TEST1()
    Dim ar, br, cr, i&, j&, n&, strReplace$
   
    ar = [A1].CurrentRegion.Value
    For i = 2 To UBound(ar)
        strReplace = Replace(ar(i, 1), "R", "")
        br = Split(strReplace, ",")
        n = 0
        For j = 0 To UBound(br)
            cr = Split(br(j), "-")
            If UBound(cr) Then n = n + (cr(1) - cr(0) + 1) Else n = n + 1
        Next j
        ar(i, 2) = n
    Next i
   
    [A1].CurrentRegion.Value = ar
    Beep
End Sub

TA的精华主题

TA的得分主题

发表于 2024-9-2 19:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请参考。。。

个数判断.rar

12.46 KB, 下载次数: 8

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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 19:27 , Processed in 0.042262 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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