Excel精英培训网

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

[已解决]求vba

[复制链接]
发表于 2014-6-19 09:28 | 显示全部楼层 |阅读模式
本帖最后由 faiki 于 2014-6-19 09:58 编辑

book1.rar (63.29 KB, 下载次数: 11)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-6-19 09:36 | 显示全部楼层
请模拟一下;
        -- i3和i7合并而且这8个数有相同的只要显示1个放i13
回复

使用道具 举报

 楼主| 发表于 2014-6-19 09:38 | 显示全部楼层
baksy 发表于 2014-6-19 09:36
请模拟一下;
        -- i3和i7合并而且这8个数有相同的只要显示1个放i13

i13不是有结果吗
回复

使用道具 举报

发表于 2014-6-19 09:41 | 显示全部楼层
faiki 发表于 2014-6-19 09:38
i13不是有结果吗

结果是怎么得来的?

回复

使用道具 举报

 楼主| 发表于 2014-6-19 09:51 | 显示全部楼层
baksy 发表于 2014-6-19 09:41
结果是怎么得来的?

i3是0083,i7是0922,合在一起是00830922,再把相同的数只要1个就是08392
回复

使用道具 举报

发表于 2014-6-19 09:54 | 显示全部楼层    本楼为最佳答案   
  1. Sub t()
  2.   Dim arr, brr, re(), n(9), i&, j%, k%, d As Object, s As String * 1
  3.   arr = Range("I3:P5").Value
  4.   brr = Range("I7:P9").Value
  5.   Set d = CreateObject("scripting.dictionary")
  6.   ReDim re(1 To UBound(arr), 1 To UBound(arr, 2))
  7.   For i = 1 To UBound(arr)
  8.      For j = 1 To UBound(arr, 2)
  9.         For k = 1 To Len(arr(i, j))
  10.            s = Mid(arr(i, j), k, 1)
  11.            d(s) = ""
  12.         Next
  13.         For k = 1 To Len(brr(i, j))
  14.            s = Mid(brr(i, j), k, 1)
  15.            d(s) = ""
  16.         Next
  17.         re(i, j) = Join(d.keys, "")
  18.         d.RemoveAll
  19.      Next
  20.   Next
  21.   Range("I13").Resize(UBound(re), UBound(re, 2)) = re
  22. End Sub
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-10 13:48 , Processed in 0.293719 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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