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
我正在尝试将 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