【发布时间】:2021-02-14 19:57:40
【问题描述】:
我最近在使用 Range.Replace 方法时遇到了一个问题。
'more code here
Worksheets(1).Range("A1:D10").Replace What:="x", Replacement:="", LookAt:=xlPart`
‘more code here`
在未受保护的工作表上,这可以按预期工作。但是在未受保护的工作表上没有进行任何更改,而且它在下一行停止并出现 1004 错误。
另外,奇怪的是,如果在范围内没有找到替换字符(示例中的“x”),一切都会正常进行而不会引发错误。
所以我的解决方法是在 Replace 行之前和之后取消保护/保护工作表。 该工作表受 UserInterfaceOnly = True 保护,因此我觉得需要解决方法令人费解。
我在运行 Windows 10 Pro ver 2004 build 19041.804 的 xl2003 和 xl 2010 上体验到相同的结果。
所以我想知道是不是有什么东西坏了,或者就是这样。
谢谢。
【问题讨论】:
-
@FaneDuru,感谢您的回复,这就是我正在做的。但正如我在帖子中所说,我会认为使用 UserInterfaceOnly = True 进行保护会使这变得不必要。
-
在旧版本的 Excel 中,关闭工作簿后不会记住 UserInterfaceOnly,重新打开时必须重新应用它。我认为这已在最新版本中得到修复,但只是最近。这能解释清楚吗?
-
@SeniorMomentum 不,这里不是这种情况,打开工作簿时会重新应用 UserInterfaceOnly。还是谢谢。