Excel.Range.Replace的唯一替代品

本文关键字:唯一 替代品 Replace Range Excel | 更新日期: 2023-09-27 18:31:55

如何用不同的字符串替换Excel中相同的匹配项?

我对Excel.Range.Replace遇到的问题是该方法替换了单个调用中的所有匹配项。例如,如果我执行以下操作:

for (int i = 0; i < myNum; i++)
{
    myRange.Replace("foo", i.ToString());
}

然后所有"foo"将被替换为 0 而不是 1、2 、3 ..

Excel.Range.Replace的唯一替代品

void ReplaceFoosWithNumbers()
{
    int i;
    Range c;
    string firstAddress;
    Range rangeToSearchIn =  Worksheets(1).Range("a1:a5");
    Set c = rangeToSearchIn.Find("Foo", LookIn:=xlValues)
    if (c != null) 
    {
        firstAddress = c.Address
        while (true)
        {
            c.Value = i
            i = i + 1
            c = rangeToSearchIn.FindNext(c)
            if (c == null)
                break;
        }
    }
}

编辑:请注意,我在没有c#编辑器的情况下编写了此代码。这将需要一些更正。如果您需要任何帮助,请发表评论。