【问题标题】:VBA find a word and add a columnVBA 查找一个单词并添加一列
【发布时间】:2022-08-03 17:31:20
【问题描述】:

我想创建一个宏(VBA)来查找一个单词并在另一个单元格中给出一个单词。 例子:

|A | B                     | macro result|
|--|-----------------------|-------------|
|1 |my cat is on the table | ok          |
|2 |Hi                     |             |
|3 |this is my house       | ok          |

我已经尝试过了,但它不起作用。你能帮助我吗?

  Sub Macro1()
    riga = 1
    
    While (Sheets(\"Foglio2\").Cells(riga, 1) <> \"\")
      If (Sheets(\"Foglio2\").Cells(riga, 2) Like \"my\") Then
         Sheets(\"Foglio2\").Cells(riga, 3) = \"ok\"
      End If
      riga = riga + 1
    Wend
    
  End Sub
  • 不确定我是否正确理解您尝试完成的工作...您是否在 B:B 列中搜索包含 \"my\" 的字符串,如果它们存在以在 C:C 中写入 \"ok\"?如果是这样,请将If (Sheets(\"Foglio2\").Cells(riga, 2) Like \"my\") Then 替换为If Instr(Sheets(\"Foglio2\").Cells(riga, 2), \"my\") &gt; 0 Then
  • 为什么不使用像 `=IF(COUNTIF(A2:B2; \"my\")>0;\"ok\";\"-\") 这样的公式
  • @FaneDuru 很好,这是工作!
  • “它不起作用”是什么意思?它有什么作用?它是否在中途工作并提前停止?它不会运行/进行任何明显的更改吗?

标签: vba


【解决方案1】:
Sub Macro1()
    riga = 1
    
    While (Sheets("Foglio2").Cells(riga, 1) <> "") 
If Instr(Sheets("Foglio2").Cells(riga, 2), "my") > 0 Then
         Sheets("Foglio2").Cells(riga, 3) = "ok"
      End If
      riga = riga + 1
    Wend
    
  End Sub

【讨论】:

    猜你喜欢
    • 2016-02-11
    • 2020-05-26
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 2014-10-07
    • 2016-08-19
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多