直到IsEmpty循环遍历用户定义的范围

这是讨论的延续通过单元格中的值循环replace文本

下面的代码获取单元格D2中的值,并在使用“标记名”一词的所有实例中,在OriginalText中填充其值。 然后循环遍历循环文本范围,并生成correctedText范围。 我正在寻找使用Do UntilEmpty命令循环,以便loopText范围取决于用户范围input,说如果用户填充单元格D2:D54那么所有的然后执行。

下面是我的代码,但我一直得到一个运行时错误'91'

对象variables或未设置块variables

请帮忙。 谢谢。

Sub CommandButton21_Click() Dim correctedText As Range Dim OriginalText As Range Dim loopText As Range Dim i As Long Dim cel As Range Dim cel2 As Range Do Until IsEmpty(loopText.Value) Set correctedText = Range("B10") Set OriginalText = Range("H3:H20") Set loopText = Range("D2") i = 0 Columns(2).Clear For Each cel2 In loopText For Each cel In OriginalText correctedText.Offset(i).Value = Replace(cel.Value, "tagname", cel2.Value) i = i + 1 Next cel Next cel2 Loop End Sub 

尝试这个:

你只需要两个循环,第一个循环被改变来做你正在寻找的东西。

 Sub CommandButton21_Click() Dim correctedText As Range Dim OriginalText As Range Dim loopText As Range Dim i As Long Dim cel As Range Dim cel2 As Range Dim j As Long Set correctedText = Range("B10") Set OriginalText = Range("H3:H20") Set loopText = Range("D2") i = 0 j = 0 Columns(2).Clear Do Until IsEmpty(loopText.Offset(j).Value) For Each cel In OriginalText correctedText.Offset(i).Value = Replace(cel.Value, "tagname", loopText.Offset(j).Value) i = i + 1 Next cel j = j + 1 Loop End Sub