搜索文本的特定列 - 然后在IF不存在的情况下添加文本

时间:2016-11-16 06:27:40

标签: excel vba

根据工程师的经验,他们会在数据记录应用程序上按下一个按钮,该按钮将自动进入" Checkpoint"进入电子表格。

如果没有按下那个按钮,就会出现NO" Checkpoint"放置后,细胞将保持空白。

为了计算/完成我的宏,我需要弄清楚如何添加" Checkpoint"在"信号交叉口"之上但是,如果" Checkpoint"已经不存在于单词"信号交叉点"

之上

重要注意事项:只有三(3)个和#34;信号交叉口"在电子表格上。

它们总是在G列中,但从不在同一行。

有些表格没有"检查点"总之,有些人会有两(2)个"检查点"等

总共应该有3个检查点(自动或手动添加)3"信号交叉口"总计(远离自动添加)

实施例 摹
1
2
3(需要MACRO寻找下面的信号化交叉点,在此选择之上移动1个电池 - 然后更改值为"检查点")
4信号交叉口
5
6
7
8
9
10个
11(然后重新搜索并找到下面的信号化交叉点,在此选择之上移动1个电池 - 然后更改值为"检查点")
12信号交叉口
13个
14个
15个
16检查点'自动进入工程师' - (因为这一个已经进入,不能忘记并且关闭。)
17个
18个
19信号交叉口
20个

对于冗长感到抱歉,如果这还不够清楚......我会采取一些截图来帮助澄清。

我有为其他元素编写的代码,所以我将添加这个新代码。

1 个答案:

答案 0 :(得分:0)

这样的事情:

Const VAL_SIG As String = "Signalized Intersection"
Const VAL_CHECK As String = "Checkpoint"

Dim bSig As Boolean, bCheck As Boolean, c As Range
Dim n As Long, sht As Worksheet

Set sht = ActiveSheet
Set c = sht.Range("G8")

Do While Application.CountA(c.EntireRow) > 0
    If c.Value = VAL_CHECK Then
        bCheck = True
    ElseIf c.Value = VAL_SIG Then
        If Not bCheck Then c.Offset(-1, 0) = VAL_CHECK
        bCheck = False
        n = n + 1
        If n = 3 Then Exit Do 'only expecting 3
    End If
    Set c = c.Offset(1, 0)
Loop