【发布时间】:2017-09-22 16:46:06
【问题描述】:
宏之前:
第 1 列|第 7 栏
PHRT1S | TEST_TEST_TEST_TEST
MacrO 之后:
第 1 列 |第 7 栏
PHRT1S | TEST_TEST_TEST_TEST(PHRT1S)
但是,如果没有附加ID,只是随机的()存在,宏会跳过if there is ()的逻辑原因。
理想情况下,我希望为以下场景做好准备:
宏之前
第 1 列 |第7栏
PHRT1S | TEST_TEST_TEST(TEST)
宏之后
第 1 列 |第7栏
PHRT1S | TEST_TEST_TEST(TEST)(PHRT1S)
如果第 1 列的值已经存在,则跳过将第 1 列的值附加到第 7 列,而不是仅通过单个括号来标识该值。
我的宏如下:
With xlSheet
LastRow = xlSheet.UsedRange.Rows.Count
Set target = .Range(.Cells(15, 9), .Cells(LastRow, 9))
values = target.Value
Set ptype=.Range(.Cells(15,6),.Cells(LastRow,6))
pvalues=ptype.Value
For i = LBound(values, 1) To UBound(values, 1)
'if Statement for test keywords
If InStr(1,pvalues(i,1),"Package")= 0 AND InStr(1,pvalues(i,1),"Roadblock")= 0 Then
If InStr(1,values(i,1),"(")=0 Then
values(i, 1) = values(i, 1) & "(" & .Cells(i + 15 - LBound(values, 1), 3) & ")"
End If
End If
Next
target.Value = values
End With
【问题讨论】:
-
这不适合你吗?
If Instr(values(I,1),.Cells(i + 15 - LBound(values, 1), 3)) = 0 Then,意思是确保类型尚未添加,而不是寻找括号。 -
它有效!谢谢。
-
那很容易。 :-) 很高兴得到帮助。请接受我的答案。