gpt4 book ai didi

vba - Excel VBA : Restart Loop Counter

转载 作者:行者123 更新时间:2023-12-02 18:11:39 25 4
gpt4 key购买 nike

嗨,我正在尝试重新启动我的循环计数器(iColumn)。我正在循环遍历列以替换模板(TemplateSheet)中的多个单词。是否可以在循环遍历所有列(内部循环)后重新启动循环计数器。

我唯一的问题是在增加行值后,它返回到循环(列),然后 iColumn 的值变为 4 并终止内部循环。

While Sheets("DataSheet").Cells(iRow, 1).Value <> ""

While Sheets("DataSheet").Cells(1, iColumn) <> ""

sFind = Sheets("DataSheet").Cells(1, iColumn)

sReplacement = Sheets("DataSheet").Cells(iRow, iColumn)

sTemplate = Replace(sTemplate, sFind, sReplacement)

iColumn = iColumn + 1

Wend
Sheets("OutputSheet").Cells(iRow, 1) = sTemplate
iRow = iRow + 1
Wend

问题已通过重新启动循环计数器得到解决。但现在我必须覆盖替换函数,因为它不存储新的替换数据。

最佳答案

只需将 iColumn 的值重置为您需要的初始值即可。我假设1

While Sheets("DataSheet").Cells(iRow, 1).Value <> ""
While Sheets("DataSheet").Cells(1, iColumn) <> ""
sFind = Sheets("DataSheet").Cells(1, iColumn)
sReplacement = Sheets("DataSheet").Cells(iRow, iColumn)
sTemplate = Replace(sTemplate, sFind, sReplacement)
iColumn = iColumn + 1
Wend
MsgBox sTemplate
iRow = iRow + 1
iColumn = 1
Wend

您可以像这样简化代码:

While Sheets("DataSheet").Cells(iRow, 1).Value <> ""
While Sheets("DataSheet").Cells(1, iColumn) <> ""
sTemplate = Replace(sTemplate, Sheets("DataSheet").Cells(1, iColumn), Sheets("DataSheet").Cells(iRow, iColumn))
iColumn = iColumn + 1
Wend
MsgBox sTemplate
iRow = iRow + 1
iColumn = 1
Wend

最后,请注意,您的 MsgBox 调用位置只会获得 sTemplate 的最终值,而不是任何中间值。当然,这可能就是您所追求的。

关于vba - Excel VBA : Restart Loop Counter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30805533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com