Excel宏命令 查找A表单的某一单元格内容是否包含于B表单某一单元格内容,如包含则填充相应内容
求大神帮忙写一个宏命令,要求如下:1、首先我有两个表单,表单A中有一列基准列Aa和一列内容列Ab,表单B中有一列基准列Ba和一列效果列Bb2、我想要做的操作是,如果Ba中...
求大神帮忙写一个宏命令,要求如下:
1、首先我有两个表单,表单A中有一列基准列Aa和一列内容列Ab,表单B中有一列基准列Ba和一列效果列Bb
2、我想要做的操作是,如果Ba中的第一个单元格全部内容中包含全部Aa列第一个单元格的内容,则将对应的Bb列内容替换为Ab列对应内容,如果不包含则继续比对Aa列的第二个单元格,如此往复知道Ba列中全部内容都比对完成
假设上图为原始状态
最终期待的结果是这样的
如果大神可以给做一个宏,我可以追加给分,在此拜谢了 展开
1、首先我有两个表单,表单A中有一列基准列Aa和一列内容列Ab,表单B中有一列基准列Ba和一列效果列Bb
2、我想要做的操作是,如果Ba中的第一个单元格全部内容中包含全部Aa列第一个单元格的内容,则将对应的Bb列内容替换为Ab列对应内容,如果不包含则继续比对Aa列的第二个单元格,如此往复知道Ba列中全部内容都比对完成
假设上图为原始状态
最终期待的结果是这样的
如果大神可以给做一个宏,我可以追加给分,在此拜谢了 展开
3个回答
展开全部
Sub 整理()
Dim a1%, a2%, b1%, b2%, mb$
a1 = 2 'A表的第一行行号,不含表头
a2 = 6 'A表的最后一行行号
b1 = 9 'B表的第一行行号,不含表头
b2 = 10 'B表的最后一行行号
With ActiveSheet
For j = b1 To b2
mb = .Cells(j, 1)
For i = a1 To a2
If InStr(1, mb, .Cells(i, 1)) Then
.Cells(j, 2) = .Cells(i, 2)
GoTo skip
End If
Next
skip:
Next
End With
End Sub
Dim a1%, a2%, b1%, b2%, mb$
a1 = 2 'A表的第一行行号,不含表头
a2 = 6 'A表的最后一行行号
b1 = 9 'B表的第一行行号,不含表头
b2 = 10 'B表的最后一行行号
With ActiveSheet
For j = b1 To b2
mb = .Cells(j, 1)
For i = a1 To a2
If InStr(1, mb, .Cells(i, 1)) Then
.Cells(j, 2) = .Cells(i, 2)
GoTo skip
End If
Next
skip:
Next
End With
End Sub
更多追问追答
追问
大神,膜拜下,我能问下,两组数据如果不是同一表单的话也可以实现吗?
追答
可以的,需要改以下代码,如果是在同一个工作簿里不同的工作表里,需要两个工作表名;
如果不是在同一个工作簿的话,也行,但是在电脑上不可以有两个同名的excel文件,需要知道两个工作簿的名称及每个表单的工作表名称
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询