VBA: 使用列中的文本替换同一列中的相同文本

VBA: Use text in column to replace the same text in the same column

我正在尝试将 T13 列中的所有文本替换为 T-lastrow。

因为我已经拥有并将在 T 列中收到更多文本(动态 sheet 将从另一个 sheet 获取导入数据)。 基本上,我希望将 T 中的文本放入其中: {Nyckelord="TEXT HERE";}

但是,我的宏进入了无限循环(我认为)。 是否也可以自动删除 T 列中单词之间的任何逗号?
示例:
T13+ 列中的文本:
冰淇淋、华夫饼
应该是{Nyckelord="Icecream waffle";}

Sub SearchTerms()

Dim Findtext As String
Dim Replacetext As String
Dim LastRowInput As Long
Dim field1 As String

LastRowInput = Cells(Rows.count, "T").End(xlUp).Row

For i = 2 To LastRowInput

field1 = Range("T13" & i).Value

Findtext = Sheets("Sheet1").Range("T13").Value
field1 = Sheets("Sheet1").Range("T" & LastRowInput + 1).Value

Replacetext = "{Nyckelord=""" & field1 & """;}"

Sheets("Sheet1").Select

Cells.Replace What:=Findtext, Replacement:=Replacetext, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Next i

End Sub
field1 = Range("T13" & i).Value

此行将从单元格 T132 开始读取。你是这个意思吗?

field1 = Range("T" & 13 + i).value

在这种情况下,循环肯定应该是:

For i = 0 to LastRowInput - 13

此外,如果您只想使用 {Nyckelord="TEXT HERE";} 语法将 "T" 中每个单元格的内容包装起来,为什么不这样做呢?

    LastRowInput= Range("T" & ActiveSheet.UsedRange.Rows.Count + 1).End(xlUp).Row 

    For i = 0 to LastRowInput - 13

       Range("T" & 13 + i).Value = "{Nyckelord=" & Range("T" & 13 + i).Value & ";}"

    Next i