2017-07-14 77 views
1

这是我第一篇文章,也是我在VBA中编程的新手。我有一个大的Excel文件,我试图创建一个宏来删除多个选项卡。我的代码遵循它的作品,因为我提示一个我想永久删除:工作表中传输的VBA运行时错误“9”(下标超出范围)

Option Explicit 

Sub delSheet() 

Worksheets("sheet2").Delete 

End Sub 

然而,当我在标签传输(标签名称是“sheet92' )从另一个文件我得到使用这个错误相同的代码

Option Explicit 

Sub delSheet() 

Worksheets("sheet92").Delete 

End Sub 

什么引起的代码删除Sheet 2中这是我内打开一个.xlsb文件并从现有复制到该文件中创建一个新的片材相对于该错误消息创建的标签文件?谢谢你提前帮你。

回答

1

你的问题不是很清楚,但你可能要引用正确的工作簿,这样的:

Workbooks("file.xlsx").Worksheets("sheet92").Delete 

如果工作簿是尚未激活,只给Worksheets("sheet92")将无法​​正常工作。

+0

我更改了代码以引用工作簿。工作簿名称是WW OCOGS Jun 17 Pass 2 Test Book,我输入的新代码是Workbooks(“WW OCOGS Jun 17 Pass 2 Test Book .xlsm”)。Worksheets(“sheet92”)。Delete'。但是,我现在正在收到错误消息,编译错误Sub或函数未定义。另外,当我输入文本时,在输入工作簿代码后,我会得到自动填充选项,例如切换活动工作表或工作表,但在输入工作表链接后,VBA不会给我任何选项来自动选择代码中的下一项串。 –

+0

@JSBach适合我。你忘了“s”还是什么?工作表后我没有自动选择,但这不是问题。如果您将“删除”替换为“激活”,它会起作用吗? – cub

+0

@JSBach作为参考,类工作表的所有方法都在[这里是MSDN](https://msdn.microsoft.com/en-us/vba/excel-vba/articles/worksheet-object-excel)中描述。请注意,该类是Worksheet,但要选择一个特定的“Worksheets(”name“)”,并带有“s”。 '工作表'集合(它指** ** active **工作簿)在[这里](https://msdn.microsoft.com/VBA/Excel-VBA/articles/worksheets-object-excel)中描述,而(所有打开的工作簿)的工作簿集合在这里描述(https://msdn.microsoft.com/en-us/vba/excel-vba/articles/workbooks-object-excel) – cub

0

我解决了我的第一个程序错误!我使用了错误的名称,我使用的是字段(名称)与选项卡的实际名称,我在这里使用了屏幕截图! http://imgur.com/a/bPNkg!一旦我使用名称Sheet1,我可以删除。感谢您的帮助@cub

相关问题