我有一张表,其中 B 列有数据,有些是“端口”。C列有一个规范。我需要创建一个遍历 B 列的宏,对于那些包含“端口”且端口不同于 22、3181 或 3389 的单元格,它将 B 列中单元格的值更改为“端口 +”。
c 列中的格式各不相同,因此可以是“Port22、port22、port_22”等。示例如下:
|港口 | 端口3181
|端口 | port_3389
|网址 | abcd
|SQL | qwerty
|港口| 端口 5900
|端口 | 端口 22
我有一段适用于特定端口的代码,但我不知道如何将上述所有 3 个端口包含在标准中。
If ActiveCell Like "Port" And Not ActiveCell.Offset(0, 1) Like "*3181*" Then ActiveCell.FormulaR1C1 = "Port+"
不过,这感觉很笨拙,也许有人知道更好的方法吗?我有多个工作表,其中最后一行有所不同,所以我想让循环部分以某种方式动态化,这样我就可以对所有工作表使用相同的宏。
编辑:
好吧,这就是我想出的:
Dim i As Integer
i = 1
Do
i = i + 1
If InStr(1, ActiveCell.Value, "Port", vbTextCompare) > 0 And ActiveCell.Offset(0, 1) Like "*22*" _
Or ActiveCell.Offset(0, 1) Like "*3181*" Or ActiveCell.Offset(0, 1) Like "*3389*" _
Then ActiveCell.FormulaR1C1 = "Port" Else ActiveCell.FormulaR1C1 = "Port+"
ActiveCell.Offset(1, 0).Select
Loop Until i = 40
它现在正在工作,因为当端口不是指定的 3 时,它将 B 列中的单元格更改为 Port+。但是,它也将非端口条目更改为 B 列除了“端口”以外的其他内容到端口+。