最后我发现这个公式的解决方案:
=IF(A1=0;"";A1&",") & IF(B1=0;"";B1&",") & IF(C1=0;"";C1)
确定这是新的宏的作品:
Columns("AD:AD").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("AD2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-10]=0,"""",RC[-10]&"","") & IF(RC[-9]=0,"""",RC[-9]&"","") & IF(RC[-8]=0,"""",RC[-8]&"","") & IF(RC[-7]=0,"""",RC[-7]&"","") & IF(RC[-6]=0,"""",RC[-6]&"","") & IF(RC[-5]=0,"""",RC[-5]&"","") & IF(RC[-4]=0,"""",RC[-4]&"","") & IF(RC[-3]=0,"""",RC[-3]&"","") & IF(RC[-2]=0,"""",RC[-2]&"","") & IF(RC[-1]=0,"""",RC[-1])"
Selection.AutoFill Destination:=Range("AD2:AD" & Range("A" & Rows.Count).End(xlUp).Row), Type:=xlFillDefault
Range("AD2:AD" & Range("A" & Rows.Count).End(xlUp).Row).Select
Selection.Copy
Range("AE2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("AD:AD,AC:AC,AB:AB,AA:AA,Z:Z,Y:Y,X:X,W:W,V:V,U:U,T:T").Select
Selection.Delete Shift:=xlToLeft
信息
这台Mac ro将列T,U,V,W,X,Y,Z,AA,AB,AC合并到AD列中,并用逗号分隔值并忽略空白单元格。之后,它将结果复制到AE列中,并删除不必要的列。所以,当宏完全执行你把所有这列合并入T列
这里有一个例子:
| IMAGE_1 | IMAGE_2 | MERGED_IMAGES |
| myimage1.jpg | myimage2.jpg | myimage1.jpg,myimage2.jpg |
| myimage1_b.jpg | myimage2_b.jpg | myimage1_b.jpg,myimage2_b.jpg |
| myimage1_c.jpg | myimage2_c.jpg | myimage1_c.jpg,myimage2_c.jpg |
PS !!!
我发现了第二个问题,宏执行后,我发现在单元格值的末尾有一些不需要的逗号的单元格。 所以我要创建一个第二个宏来解决与宏录制这一问题,这个公式
=IF(RIGHT(J2;1)=",";LEFT(J2;LEN(J2)-1);J2)
,如果你想删除的的字母“W”可以更改配方,任何你想要的,如A2单元格的值的末尾,你可以像这样改变这个单元格:
=IF(RIGHT(A2;1)="w";LEFT(A2;LEN(A2)-1);A2)