Excel:在列中搜索另一个工作表上的表中的单词,如果找到任何表,则从当前单元格中的单元格中插入值

时间:2016-03-16 18:04:31

标签: excel vba excel-vba macros

我一直试图找到一个宏,它将逐行查看列(工作列a),并在另一个工作表上搜索表中的任何单词(列表a)。如果它找到任何这些单词,它将返回下一列(列表b)中的值并将其放入工作表(工作列c)中的单元格中,并逐行向下工作表单行执行此操作。

这可能是宏吗?我知道if then else公式列在7个项目中,并且我使用的列表的时间长于那个(并且还在增长)

1 个答案:

答案 0 :(得分:0)

在所有工作表中替换范围中定义的所有表达式的示例:

Sub ReplaceMulti()
  Dim dictionary As Range, sh As Worksheet, data(), r&, search$, replace$

  ' Loads a translation table from a worksheet
  ' The first column is the searched string and the second is the replacement
  Set dictionary = [Sheet1!A1:B10]
  data = dictionary.value

  ' iterate each sheet
  For Each sh In ActiveWorkbook.Worksheets

    ' skip the sheet with the dictionary
    If sh.CodeName <> dictionary.Worksheet.CodeName Then

      ' iterate each expression
      For r = 1 To UBound(data)

        If Not IsEmpty(data(r, 1)) Then
          search = data(r, 1)
          replace = data(r, 2)

          ' replace in the sheet
          sh.Cells.replace What:=search, replacement:=replace, _
            LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
            SearchFormat:=False, ReplaceFormat:=False

        End If
      Next
    End If
  Next
End Sub