我需要写一个宏。
我有一个约30000行的工作簿(每天更改)。
我需要搜索表达式" TRADE"在列(A)
如果单元格中的字符串包含表达式TRADE我需要将列(B)(相同行)中相关单元格中的字符串更改为表达式" TRADEIN"
如果不满足条件,则(B)栏中的相关单元格需要保持不变
到目前为止我学到了什么:
Git repositories
只会相应地更改相邻的单元格值,如果直接放在单元格中并在Excel中复制的话。
当我尝试将字符串作为结果时,问题就开始了
Formula =IF(ISNUMBER(FIND("TRADE", A1 )), 1, 2)
无法工作 - >错误
Formula: =IF(ISNUMBER(FIND("TRADE", A1 )), "TRADEIN", "")
无法工作 - >错误
然后,任何试图让我的宏将更复杂的公式插入VBA的单元格中的尝试都失败了,例如:
以下工作正常:
Formula: =IF(ISNUMBER(FIND("TRADE", A1 )), ""TRADEIN"", "")
以下工作没有成功(如果直接放在单元格中,公式也会有效):
For i=1 to i=NumberOfRows
ActiveSheet.Cells(i, 2).Formula = "= 2+2"
next i
我认为列出我到目前为止失败的所有失败尝试都没有意义(我想要读取大量无用的行),但无论如何 - 如果我错了,请纠正我。 / p>
我无法找到与我的任务一样具体的解决方案,并且在改变在线发现的问题时会遇到问题,而其他人根本不会为我工作。或许不知道如何以最有效的方式询问我的需求。非常基本,如果可以的话,尽量不要错过任何建议的模块/子的声明 - 在我遵循的几个例子之外,或者选择/使用时,我还不自信地使用和创建对象和方法具有兼容方法/功能等的正确类型的变量。
答案 0 :(得分:1)
使用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
答案 1 :(得分:1)