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

时间:2014-03-24 17:55:14

标签: excel vba excel-vba excel-2010

我需要一些Xcel 2010的帮助。

我在Xcel 2010中有一个电子表格预算工作簿,其中包含6个工作表标签。我需要复制其中一个工作表,然后传递给不允许查看其他工作表的人。

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

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

其他信息:我使用的是Windows 7,这是我的工作电脑,对自己的VBA编码一无所知。我只是在寻找Googling的快速解决方案并让自己陷入困境。

拆分工作簿的代码

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

1 个答案:

答案 0 :(得分:1)

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

只要Excel应用程序启动,就会打开此文件夹中的任何工作簿。它是一个文件夹,通常用于放置您的个人宏工作簿,因此在处理不同的工作簿时,宏可以自动使用。

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

Win7 / 8: C:\ Users \ [用户名] \ AppData \漫游\ Microsoft \ Excel \ XLSTART

WinXP: C:\ Documents and Settings \ [Username] \ Application Data \ Microsoft \ Excel \ XLStart

并清除您不期望的任何文件。

有关如何自定义Excel用于实现有用结果的模板和工作簿的更多详细信息,请转至http://office.microsoft.com/en-gb/excel-help/customize-how-excel-starts-HP010197489.aspx