ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 单元格数值拆分、查找重复值并提出来

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-12-16 18:21 | 显示全部楼层 |阅读模式
图片_20171216181755.png

单元格数值拆分并计算.rar (10.56 KB, 下载次数: 9)

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-12-16 19:29 | 显示全部楼层
新人菜鸟求助,求高人显现!

TA的精华主题

TA的得分主题

发表于 2017-12-16 20:17 | 显示全部楼层
naanhuanbao 发表于 2017-12-16 19:29
新人菜鸟求助,求高人显现!

哈哈,关键时刻,没蓝、没闪现!(没人、没显现!)So It's dead...

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-12-16 22:47 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-12-17 02:29 | 显示全部楼层
你看看,有什么问题再交流

单元格数值拆分并计算.rar

26.06 KB, 下载次数: 8

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-12-17 11:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wllxf 发表于 2017-12-17 02:29
你看看,有什么问题再交流

非常感谢!and 感谢!大侠辛苦了!运行非常顺畅,不知道如果有上万条原始数据的话,运算速度怎样。
多谢啊!

TA的精华主题

TA的得分主题

发表于 2017-12-17 11:43 | 显示全部楼层
  1. Option Explicit

  2. Sub main()
  3. Dim irow As Long, iRowMax As Long
  4. iRowMax = Range("A3").End(xlDown).Row
  5. Range(Cells(3, 2), Cells(iRowMax, 9)).ClearContents
  6. Range(Cells(3, 2), Cells(iRowMax, 9)).Interior.Color = xlNone
  7. For irow = 3 To iRowMax
  8.   Dim str As String
  9.   str = addZero(CStr(Cells(irow, 1).Value))
  10.   Call splitStrAndFill(str, irow)
  11.   Call findRepCellAndColor(irow)
  12.   Cells(irow, 9).Value = absCal(irow)
  13. Next irow
  14. End Sub

  15. Public Function absCal(ByVal irow As Integer)
  16. Dim i As Integer
  17. absCal = Abs(Cells(irow, 4).Value - Cells(irow, 5).Value) + Abs(Cells(irow, 4).Value - Cells(irow, 6).Value) + Abs(Cells(irow, 5).Value - Cells(irow, 6).Value)
  18. End Function

  19. Public Function findRepCellAndColor(ByVal irow As Integer)
  20. Dim i As Integer
  21. For i = 2 To 6
  22.   Dim expRng As String
  23.   expRng = Cells(irow, 2).Address & ":" & Cells(irow, 6).Address
  24.   If Evaluate("=countif(" & expRng & "," & Cells(irow, i).Address & ")") > 1 Then
  25.    Cells(irow, i).Interior.Color = RGB(255, 199, 206)
  26.    Cells(irow, 7).Value = Cells(irow, i).Value
  27.    Cells(irow, 8).Value = Evaluate("=countif(" & expRng & "," & Cells(irow, i).Address & ")")
  28.   End If
  29. Next i
  30. End Function

  31. Public Function splitStrAndFill(ByVal str As String, ByVal irow As Integer)
  32. Dim i As Integer
  33. Dim arr(1 To 5)
  34. For i = 1 To 5
  35.   Cells(irow, i + 1).Value = Mid(str, i, 1)
  36. Next i
  37. End Function
  38. Public Function addZero(ByVal str As String)
  39. If Len(str) < 5 Then
  40.   Dim i As Integer
  41.   For i = 1 To 5 - Len(str)
  42.    str = "0" & str
  43.   Next i
  44. End If
  45. addZero = str
  46. End Function
复制代码

TA的精华主题

TA的得分主题

发表于 2017-12-17 11:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
naanhuanbao 发表于 2017-12-17 11:43
非常感谢!and 感谢!大侠辛苦了!运行非常顺畅,不知道如果有上万条原始数据的话,运算速度怎样。
多谢 ...

你可以试试

TA的精华主题

TA的得分主题

发表于 2017-12-17 12:36 | 显示全部楼层
数字多的话 这个能快一点

单元格数值拆分并计算1.rar

30.1 KB, 下载次数: 3

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-12-17 14:31 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-3-29 19:17 , Processed in 0.090773 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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