每次Excel启动时都会打开空白工作表-在使用VBA代码拆分电子表格后意外创建

每次Excel启动时都会打开空白工作表-在使用VBA代码拆分电子表格后意外创建,vba,excel,excel-2010,Vba,Excel,Excel 2010,我需要一些Xcel 2010的帮助 我在Xcel 2010中有一个电子表格预算工作簿,其中有6个工作表选项卡。我只需要将其中一张工作表复制一份,就可以传递给不允许查看其他工作表的人 我使用下面所示的VBA代码分割工作簿,它工作得很好。但是,由于这样做,现在每次打开任何Xcel文件时,我都会得到三个同时打开的空白工作表,它们被标记为Tabelle1.xls、Tabelle2.xls和Tabelle3.xls 我认为使用另一个VBA代码(见下面的其他代码)来删除模块可以解决这个问题,但事实并非如此。

我需要一些Xcel 2010的帮助

我在Xcel 2010中有一个电子表格预算工作簿,其中有6个工作表选项卡。我只需要将其中一张工作表复制一份,就可以传递给不允许查看其他工作表的人

我使用下面所示的VBA代码分割工作簿,它工作得很好。但是,由于这样做,现在每次打开任何Xcel文件时,我都会得到三个同时打开的空白工作表,它们被标记为Tabelle1.xls、Tabelle2.xls和Tabelle3.xls

我认为使用另一个VBA代码(见下面的其他代码)来删除模块可以解决这个问题,但事实并非如此。现在,如果我打开VisualBasic,根本就没有代码/模块,但我仍然会得到三张空白工作表,它们与我打开的任何Xcel文件分开打开。这三张空白工作表的文件扩展名都是.xls,但我的MS Office版本使用的是.xlsx

其他信息:我正在使用Windows7,这是我的工作电脑,我自己对VBA编码一无所知。我只是在谷歌上寻找一个快速解决办法,结果自己陷入了困境

拆分工作簿的代码

Sub Splitbook()
MyPath = ThisWorkbook.Path
For Each sht In ThisWorkbook.Sheets
sht.Copy
ActiveSheet.Cells.Copy
ActiveSheet.Cells.PasteSpecial Paste:=xlPasteValues
ActiveSheet.Cells.PasteSpecial Paste:=xlPasteFormats
ActiveWorkbook.SaveAs _
Filename:=MyPath & "\" & sht.Name & ".xls"
ActiveWorkbook.Close savechanges:=False
Next sht
End Sub
我用来删除模块的代码:

Sub DeleteModule()
    Dim VBProj As VBIDE.VBProject
    Dim VBComp As VBIDE.VBComponent

    Set VBProj = ActiveWorkbook.VBProject
    Set VBComp = VBProj.VBComponents("Module1")
    VBProj.VBComponents.Remove VBComp
End Sub

SectionBreak

您的症状表明工作簿位于XLSTART文件夹(“自动运行”文件夹)中。名称为“Tabelle”的原因是该工作簿的来源可能是德国地区

每当Excel应用程序启动时,此文件夹中的任何工作簿都会打开。它是一个文件夹,通常用于放置个人宏工作簿,以便在处理不同的工作簿时自动使用其中的宏

在您的情况下,这似乎是无意的。检查位于的文件夹,通常为:

Win7/8:C:\Users\[Username]\AppData\Roaming\Microsoft\Excel\XLSTART

WinXP:C:\Documents and Settings\[用户名]\Application Data\Microsoft\Excel\XLStart

并清除所有你不希望出现的文件


有关如何自定义Excel使用的模板和工作簿以获得有用结果的更多详细信息,请参阅。

拆分工作簿的代码与此无关。快速查看一下它,就会发现它不需要任何工作簿创建,只需要添加工作表。你在别的地方有类似的个人宏工作簿吗?或者您在其中一张工作表中留下了一个打开的
工作表
事件?您可以通过双击VBE中的每个工作表来检查这一点。问题不在宏代码中,您是否可能在其他地方有更多代码?在另一个模块中?工作表打开了吗?etc?检查您的XLSTART文件夹\Users[x]\AppData\Roaming\Microsoft\Excel\XLSTART感谢您的快速响应。我不明白它是如何或为什么开始的,因为我以前从未使用过宏,也从未打开过Visual Basic。感谢@Cor_Blimey的回答,成功地删除了额外的工作表。“在我能够获得有关该主题的适当教育之前,我将在未来远离新手编码。”pnuts适时地将评论充实到带有相关解释/链接的答案中。谢谢你的提醒。