用于在特定字母出现和排序时选择单元格的VBA代码

时间:2014-02-01 03:43:16

标签: excel-vba vba excel

我需要一些帮助来理解和修改我在this answer中找到的一些代码:

Sub Main()

    Dim cell As Range
    Dim nextRow As Long
    For Each cell In Range("K50:K200")
        If StrComp(cell, "Late", vbTextCompare) = 0 Then
            nextRow = Range("J" & Rows.Count).End(xlUp).Row + 1
            Range("J" & nextRow) = Range("B" & cell.Row)
            Range("K" & nextRow) = Range("C" & cell.Row)
            Range("N" & nextRow) = Range("G" & cell.Row)
            Range("O" & nextRow) = Range("H" & cell.Row)
        End If
    Next

End Sub

我想要的是:

  • 如果late与其他一些词语一起提及,请说late submit,复制B中的值并粘贴J
  • 如果行Kprogress并且说in progress,请将C中的值复制到K
  • 如果sickon sick leave,请将G中的值复制到N

我努力了,但我仍然没有成功修改这段代码以满足我的需求。

1 个答案:

答案 0 :(得分:0)

  

如果迟到还有其他一些话,请说迟到

在这种情况下,请使用StrComp

而不是Instr
If Instr(1, cell, "Late", vbTextCompare) > 0 Then

其他类似。

如果你查看Excel的帮助,你会注意到Instr返回一个Variant(Long),指定第一次出现的一个字符串另一个字符串中的位置。

<强>语法

InStr([start,] string1,string2 [,compare])