Excel 2013,在一个单元格中搜索部分文本,如果满足条件则覆盖相邻单元格

Excel 2013, searching for partial text in one cell and overwriting adjacent cell if condition is met

我需要写一个宏。

我有一个约 30000 行的工作簿(每天更改)。

  1. 我需要在 (A) 列单元格的字符串中搜索表达式 "TRADE"

  2. 如果单元格内的字符串包含表达式 TRADE 我需要将 (B) 列(同一行)中相关单元格中的字符串更改为表达式 "TRADEIN"

  3. 如果不满足条件,则 (B) 列中的相关单元格需要保持不变


到目前为止我学到了什么:

Formula =IF(ISNUMBER(FIND("TRADE", A1 )), 1, 2) 仅当直接放置在单元格内并向下复制到 Excel.

时才会相应地更改相邻单元格的值

当我尝试将字符串作为结果时出现问题

Formula: =IF(ISNUMBER(FIND("TRADE", A1 )), "TRADEIN", "") 不工作->error

Formula: =IF(ISNUMBER(FIND("TRADE", A1 )), ""TRADEIN"", "") 不工作->error


然后任何试图让我的宏将更复杂的公式插入来自 VBA 的单元格的尝试都失败了,即:

以下工作正常:

For i=1 to i=NumberOfRows

ActiveSheet.Cells(i, 2).Formula = "= 2+2"

next i

以下将不起作用(同样,如果直接将公式放在单元格中,则公式有效):

For i=1 to i=NumberOfRows

ActiveSheet.Cells(i, 2).Formula = "=IF(ISNUMBER(FIND("TRADE", (i, 1)), 1, 2)"

next i

我认为没有必要列出我迄今为止为使它工作而失败的所有尝试(我认为有大量无用的行要阅读)但无论如何 - 如果我错了请纠正我。

我找不到与我的任务一样具体的解决方案,并且在更改在线找到的一些解决方案时遇到了问题,而其他解决方案根本不适合我。也许不完全知道如何以最有效的方式提出我需要的东西。非常基本,如果可以的话,尽量不要错过提议的 modules/subs 中的任何声明 - 在我遵循的几个示例之外使用和创建对象和方法时,我还没有信心,或者 choosing/using 与 methods/functions 等

兼容的正确变量类型

使用VBA这就是实现目标的方法。这将找到 A 列中用于设置工作范围的最后一行。

Sub test()

Dim w As Range
lrow = Range("A1", Range("A" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible).Count
For Each w In Range("A1:A" & lrow).Cells
    If w.Value = "trade" Then
        w.Offset(0, 1).Value = "tradein"
    End If
Next w

End Sub

练习使用自动过滤器,一旦你学会了使用宏记录器来获取代码。

Select A 列和转到数据=>过滤器=>文本过滤器=>包含....在框中键入要过滤的词。