我不知道为什么这不起作用......
Sheets("SampleSheet").Select
ActiveWorkbook.SelectedSheets.Delete
但这有效......
Sheets("SampleSheet").Select
ActiveWindow.SelectedSheets.Delete
在这两种情况下,工作表" SampleSheet"被选中了,对吗?
答案 0 :(得分:0)
正如GSerg评论的那样,它不起作用,因为没有ActiveWorkbook.SelectedSheets
属性。 Excel团队中的某个人想要创建一个返回所有选定工作表数组的属性。但是把它放在哪里?他们本可以把它放在工作簿级别,但是如果用户为同一个工作簿打开了两个窗口呢?他们可以在每个窗口中选择不同的工作表。使用哪个窗口?所以他们决定将它作为Window对象的属性。
一个好主意,也许,但他们可以把它放在两个地方。 Workbook和Window对象都具有ActiveSheet属性。当您引用ActiveWorkbook.ActiveSheet
时,它似乎与ActiveWorkbook.Windows(1).ActiveSheet
相同,而Windows(1)始终是活动窗口。他们可以为SelectedSheets做同样的事情,我认为他们应该有。
与此同时,您可以使用ActiveWorkbook.Windows(1).SelectedSheets
来克服Excel团队缺乏一致性。