用VBA实现EXCEL公式的功能,谢谢!具体如图所示!

 我来答
阳光上的桥
2017-05-16 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65814
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部

这个看你VBA是否有些基础,有的话可以看懂下面的提示,没有的话...建议就用公式。

一般可以用双重循环来做:

dim i,j,k,ok,s1,s2
s1=range("b1")
for i=1 to 32
    s2=cells(i,1)
    ok=1
    for j=1 1 to len(s1)
        for k=1 to len(s2)
            if mid(s1,j,1)=mid(s2,k,1) then 
                ok=0
                exit for
            end if
        next k
        if ok=0 then exit for
    next j
    if ok=0 then cells(i,3)="x" else cells(i,3)="√"
next i

用数组可以更简洁和高效:

dim i,j,k,ok,s1,s2
dim arr(0 to 9) as boolean '每一位表示B1是否存在这个数字
s1=range("b1")
for j=1 to len(s1)
    arr(mid(s1,j,1)+0)=true
next j
for i=1 to 32
    s2=cells(i,1)
    ok=1
    for j=1 1 to len(s2)
        if arr(mid(s2,j,1)+0) then 
            ok=0
            exit for
        end if
    next j
    if ok=0 then cells(i,3)="x" else cells(i,3)="√"
next i
追问
老师,我是因为用公式太卡了,才向你寻求vba的,还去赐教
数组比Vba还快速吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式