Excel精英培训网

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

[已解决]求个VBA

[复制链接]
发表于 2013-12-2 20:29 | 显示全部楼层 |阅读模式
本帖最后由 lkjhuy 于 2013-12-2 22:36 编辑

Book1.rar (5.8 KB, 下载次数: 7)
发表于 2013-12-2 21:01 | 显示全部楼层    本楼为最佳答案   
请测试:
Book1.zip (9.23 KB, 下载次数: 1)
回复

使用道具 举报

发表于 2013-12-2 21:40 | 显示全部楼层
2楼可以简化为

Sub 判断()
    Dim i%, j%, x$, y, arr, brr(1 To 4) As Integer
    arr = Range("d5:g5")
    x = Range("a1")
    For i = 1 To UBound(arr, 2)
        y = arr(1, i)
        For j = 1 To Len(y)
            If InStr(x, Mid(y, j, 1)) Then brr(i) = 1: Exit For
        Next j
    Next i
    Range("i3").Resize(1, 4) = brr
End Sub

回复

使用道具 举报

发表于 2013-12-2 21:41 | 显示全部楼层
一开始忘了去想instr

Sub test()
    Dim A(), j%, x%, y%
    x = [a1]
    A = [D3:g5].Value
   
    For j = 1 To UBound(A, 2)
        y = A(3, j)
        A(1, j) = IIf(zh(x) + zh(y) <> zh(x & y), 1, 0)
    Next j
    [d3].Resize(UBound(A), UBound(A, 2)) = A
End Sub

Function zh(str)    '去重复数字后的长度
    Dim i, t, B(9)
    For i = 1 To Len(str)
        t = Mid(str, i, 1)
        B(t) = t
    Next i
    zh = Len(Join(B, ""))
End Function

回复

使用道具 举报

 楼主| 发表于 2013-12-2 22:19 | 显示全部楼层
yyyydddd8888 发表于 2013-12-2 21:01
请测试:

数据D5:G5不是固定的,后面有时要到BB5,能否改下
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-11 19:24 , Processed in 0.236631 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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