Sam*_*gan 31 excel vba excel-vba
我有一些非常简单的代码,在当前工作表之后将新工作表添加到Excel文档,然后将其名称更改为在userform上的文本框中输入的名称.在新工作簿上正常工作,但是在具有许多现有工作表的工作簿中,它会创建新工作表,但不会重命名它.
这只会在您第一次运行此代码时发生,下次运行正常.让它更奇怪的是,如果你打开VBA编辑器尝试调试它,那么它也运行良好.这显然使得发现错误非常困难.
我正在使用的代码在这里:
Dim WS As Worksheet
Set WS = Sheets.Add(After:=Sheets(Worksheets.count))
WS.name = txtSheetName.value
Run Code Online (Sandbox Code Playgroud)
很简单.我想知道这个问题是否正在尝试在正确创建之前重命名工作表?有没有更好的方法来编写这段代码?
更新: 我已经开始使用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
Run Code Online (Sandbox Code Playgroud)
Sag*_*age 39
http://www.mrexcel.com/td0097.html
Dim WS as Worksheet
Set WS = Sheets.Add
Run Code Online (Sandbox Code Playgroud)
您不必知道它的位置,或者它的名称是什么,您只需将其称为WS.
如果您仍然希望以"老式"方式执行此操作,请尝试以下操作:
Sheets.Add.Name = "Test"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
436067 次 |
| 最近记录: |