EXCEL宏命令(先判断再替换)
我需要一个宏。大概就是:先判断D2是不是字符数大于4,如果大于4,那么用D2的内容替换P列中,与P2相等的单元格内容。如果D2字符数小于4,那么不处理。一行一行的运行。希...
我需要一个宏。大概就是:先判断D2是不是字符数大于4,如果大于4,那么用D2的内容替换P列中,与P2相等的单元格内容。如果D2字符数小于4,那么不处理。一行一行的运行。希望谁帮帮我。
忘记说了,要同时满足D2字符数大于4,P2字符数小于17,执行D2替换P列中,与P2相同的单元格内容。几十万行。呵呵对了,可能没写清楚,因为不光是P列同行,也有可能是P列N+1,n+2,n+3行.。。。的内容与P2的内容相同的,都要替换。求救各位大神了,要是没宏,要累死我了。谢谢请问,有没有在我说的条件下,执行类似手动替换的操作。就是用D2单元格内的数据,替换掉与P2单元格内的数据相同的所有P列中数据。
下面是源数据
下面是想要得到的结果,是我手动粘贴的。
下面是“阳光上的桥”大神给的代码执行后的效果。
不是P列数据的问题。 展开
忘记说了,要同时满足D2字符数大于4,P2字符数小于17,执行D2替换P列中,与P2相同的单元格内容。几十万行。呵呵对了,可能没写清楚,因为不光是P列同行,也有可能是P列N+1,n+2,n+3行.。。。的内容与P2的内容相同的,都要替换。求救各位大神了,要是没宏,要累死我了。谢谢请问,有没有在我说的条件下,执行类似手动替换的操作。就是用D2单元格内的数据,替换掉与P2单元格内的数据相同的所有P列中数据。
下面是源数据
下面是想要得到的结果,是我手动粘贴的。
下面是“阳光上的桥”大神给的代码执行后的效果。
不是P列数据的问题。 展开
1个回答
展开全部
程序代码如下:
Sub xxx()
Dim i, j, d, p
For i = 2 To 1000 '是多少万就写多少万
d = ActiveSheet.Cells(i, 4)
p = ActiveSheet.Cells(i, 16)
If Len(d) > 4 And Len(p) < 17 Then
For j = i To 1000 '是多少万就写多少万
If ActiveSheet.Cells(j, 16) = p Then ActiveSheet.Cells(j, 16) = d
Next j
End If
Next i
End Sub
Sub xxx()
Dim i, j, d, p
For i = 2 To 1000 '是多少万就写多少万
d = ActiveSheet.Cells(i, 4)
p = ActiveSheet.Cells(i, 16)
If Len(d) > 4 And Len(p) < 17 Then
For j = i To 1000 '是多少万就写多少万
If ActiveSheet.Cells(j, 16) = p Then ActiveSheet.Cells(j, 16) = d
Next j
End If
Next i
End Sub
更多追问追答
追问
谢谢您,但还不太对。现象是,比如D2是a,P2是b,P3是b,P4是c,想达到的效果是,Q2是a,Q3是a,Q4不变。。。但是执行结果还是为Q2是a,Q3是空。好像是j没循环,怀疑源数据不对,看着一样,但是有多余字符的情况。我再检查下。谢谢。
追答
你贴个图嘛
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |