很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,访问帮助中心 /help/reopen-questions 。
我有一些非常简单的代码,可以在当前工作表之后添加一个新工作表到 Excel 文档,然后将其名称更改为在用户窗体上的文本框中输入的名称。在新工作簿上工作正常,但是在具有多个现有工作表的工作簿中,它会创建新工作表,但不会重命名它。
这种情况仅在您第一次运行此代码时发生,下次运行时它将正常运行。更奇怪的是,如果您打开 VBA 编辑器尝试调试它,它也可以正常运行。这显然使得查找错误变得非常困难。
我正在使用的代码在这里:
Dim WS As Worksheet
Set WS = Sheets.Add(After:=Sheets(Worksheets.count))
WS.name = txtSheetName.value
很简单。我想知道这个问题是否是在正确创建工作表之前尝试重命名工作表?有更好的方法来编写这段代码吗?
Update: 我已经开始使用 msgboxes 对此进行调试,因为打开调试器会使问题停止,并且似乎它只是在中途停止处理代码:
Dim WS As Worksheet
MsgBox (WS Is Nothing)
Set WS = Sheets.Add(After:=Sheets(Worksheets.count))
'***** Nothing after this point gets processed *******
MsgBox (WS Is Nothing)
MsgBox WS.name
WS.name = txtSheetName.value
MsgBox WS.name
http://www.mrexcel.com/td0097.html http://www.mrexcel.com/td0097.html
Dim WS as Worksheet
Set WS = Sheets.Add
您不必知道它的位置,或者它的名称是什么,您只需将其称为 WS 即可。 如果您仍然想以“老式”方式执行此操作,请尝试以下操作:
Sheets.Add.Name = "Test"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)