Excel VBA:将脚本隔离到一个工作表

时间:2017-09-19 04:41:49

标签: excel vba excel-vba

下面的代码旨在将文本字符串转换为一个工作表中的简洁数组,但它会不断更改工作簿中其他工作表中的文本。

我通过评论C:\xampp\htdocs\jsonproject\tests\>phpunit NotesTest.php PHPUnit 5.7.21 by Sebastian Bergmann and contributors. .. 2 / 2 (100%) Time: 740 ms, Memory: 10.00MB OK (2 tests, 7 assertions) #below突出显示了我认为问题出现的问题。

如何仅在指定的工作表上运行?

#above

1 个答案:

答案 0 :(得分:1)

下方部分中,您有这个循环:

For Each sht In ActiveWorkbook.Worksheets
    sht.Cells.Replace What:=fndList(x), Replacement:=rplcList(x), _
            LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
            SearchFormat:=False, ReplaceFormat:=False
Next sht

这表示您正在为所有工作表执行Replace

将其更改为:

Set sht = ThisWorkbook.Sheets("YourSheetName") '<-- modify to your sheet's name

sht.Cells.Replace What:=fndList(x), Replacement:=rplcList(x), _
            LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
            SearchFormat:=False, ReplaceFormat:=False

另外,为了安全起见,对于上方部分,请使用Range完全限定sht个对象。见下面的例子:

With sht
    .Range("A1") = "Account"
    .Range("C1") = "Balance"
    .Range("D1") = "KP"

    ' rest of your code

End With