VBA编辑器自动删除行末尾的空格

时间:2009-07-22 09:38:42

标签: excel vba editor

当我暂停键入四分之一秒时,有没有办法说服Excel中的VBA编辑器停止自动格式化行以删除最后的空格?

18 个答案:

答案 0 :(得分:39)

我遇到了这个问题,以下内容对我有用。

  1. 单击“Microsoft Office按钮”,然后单击“Excel选项”
  2. 点击加载项类别
  3. 在“管理”框中,单击“COM加载项”,然后单击“转到”。
  4. 查找名为“加载测试报告添加”的添加项,然后取消选中
  5. restart excel
  6. 此插件随VS2010 Beta2一起安装

答案 1 :(得分:10)

在Excel 2010中,在开发人员功能区选项卡上切换设计模式按钮可以解决我的问题。

答案 2 :(得分:6)

我之前肯定遇到过那个问题,vba编辑器会按照我输入的格式进行格式化(不仅仅是当我转到另一行时)。对我来说,它似乎与我在一个打开的工作簿中的Microsoft Web浏览器控件有关。当我拿出Web浏览器时,VBA编辑器再次开始正常运行。我不知道为什么会这样,但确实如此。现在我避免在我的工作簿中使用该控件。

答案 3 :(得分:4)

有一种方法可以在VBA编辑器中关闭自动“校正”。

Tools菜单 - > Options - > Editor标签 - >清除Auto Syntax Check

可悲的是,这并不能解决你所有的问题,因为无论好坏,VBA编辑都倾向于有自己的想法。

答案 4 :(得分:4)

当你在VBA编辑器中时,某些东西会导致你的电子表格重新计算,这会“编译”你的代码,从而剥离空格。您需要在编辑时停止重新计算单元格。在电子表格中将计算转为手动。 工具>选项>计算应该可以解决问题。

当我通过DDE连接重新计算单元格时,我注意到了这一点。

答案 5 :(得分:2)

我最近几次遇到同样的问题,让我发疯了。

在阅读了这篇文章后,提到了所有不同的修复方法(对我来说都没有用),我记得我最近一直在玩Internet Explorer Control,从VBA打开Internet Explorer。

这篇文章中的一些答案中提到了这一点。

这让我走上了正确的道路,为了解决这个问题,我必须首先删除所有iexplore.exe实例(alt + control + delete),关闭Excel并再次打开excel。 (iexplore.exe已从VBA代码中打开,我不知道它们正在运行)

修复了这个错误。

我已经用VBA编程了4年多,从来没有遇到过这个问题。

就在几个星期前我开始使用IE控件,我开始遇到这个问题......所以在我的情况下,我只能假设这个bug与IE控件直接相关。

我同时在同一台PC上运行excel 2003和2007,问题只发生在excel 2007上。

答案 6 :(得分:1)

关闭Tools > Options > General > Background Compile。这解决了我。

答案 7 :(得分:1)

以上都不适合我。 我有一个Application.OnTime计时器,每秒都会被触发,这会触发重新计算的东西:评论它让我的一天。

答案 8 :(得分:1)

最近,在向Access 2007表单添加Timer事件后,我开始发生这种情况。 VB编辑器“敲定”当前行(就好像你已经将光标移出语句;我有自动语法检查关闭)每次事件触发时(最初我将它设置为1秒,现在设置为5秒,并且行为相应地缩放)。为了执行事件代码,应用程序必须确保已编译它。据推测,编辑器需要处于“理智”状态才能执行此操作,因为它可能必须检查模块之间的代码依赖性。请注意,无论当时是否实际将任何相关代码加载到编辑器中,都会发生此行为。另请注意,重置执行状态不会影响计时器事件触发。实际上,可以关闭触发形式,将其切换到设计视图,在触发的代码中设置断点,或者在使用编辑器时增加定时器间隔。

与abhishek的评论相反,更改工具/选项... /常规/按需编译和/或后台编译的设置不会影响该问题。

答案 9 :(得分:1)

如果有帮助,以前的答案都没有解决我的问题。只有解决方案似乎是关闭xls文件并重新打开它。令人沮丧的是必须每30分钟做一次,但至少它是有效的。很想知道它为什么重新编译和清理文本......应该是一个禁用文本清理但无法找到的选项。

答案 10 :(得分:1)

将它从设计模式中解放出来,每次都在vba2003上修复它 - 它一开始让我发疯...我注意到它可能与网页控件有关但当我把它从设计模式中拿出来时它工作正常...只需切换它以使其表现:)

答案 11 :(得分:1)

这是一个长期存在的问题,可能有多种原因。我在 Access VBE 中发生了同样的问题(所以 Excel 答案自然不相关)。经过大量挖掘,我终于用下面的解决方案修复了它。首先回顾一下:

如果您因为 Excel 中的此问题而来到这里,请先尝试上述解决方案。总结一下:

  • Excel 中最常见的问题是“设计”按钮被切换。切换它,看看行为是否像上面 Dmitry Frenkel 提交的那样发生变化
  • 如果这不起作用,请检查 Ade 提到的“负载测试报告”插件。

这确实是 Excel 中的两个主要原因,但如果这些解决方案都不起作用,请在此处滚动浏览其余的解决方案。所有这些都是原因的有效可能性。在 Access 中,原因很简单。这是某个表单上的计时器问题。我从用户 Kevin K. Sullivan 的 here 处找到了这个解决方案。

  • 将以下代码行复制到剪贴板上。 (你可能需要 首先将其粘贴到文本编辑器中并将其强制为一行,具体取决于 你的新闻阅读器。必须是一行。)

    对于 i = 0 到 Forms.Count -1: Debug.Print Forms(i).Name, Forms(i).TimerInterval: Next i

  • 切换到访问权限。

  • 按 Ctrl-G 转到立即窗口。

  • 按 Ctrl-V 粘贴代码。

  • 按回车键运行代码。将列出所有打开的表格。任何非零计时器间隔都是您的罪魁祸首。只需关闭该表单(它可能会从您认为正在处理的进程之外的其他进程无形中打开)。

我认为这里的 Access 解决方案就是上面用户 Dom 试图说的。我想反对票是因为它没有得到很好的解释和/或因为当 OG 问题出现在 Excel 中时,他正在谈论 Access。无论如何,如果您因为 Access 中的 VBE 而来到这里,他很可能是正确的。

我希望这对人们有所帮助。我知道我在研究这个问题时一直在寻找这个页面,所以我想我会在这里更新这个解决方案。

答案 12 :(得分:0)

我今天在全新安装的Excel 2010 Beta 2上遇到了这个问题。以上都没有任何区别,但进入信任中心并禁用所有应用程序加载项为我解决了问题。

答案 13 :(得分:0)

我有Office 2010专业版,我遇到了同样的问题。当我输入时,每个单词之间的空格被删除。在尝试每个选项打开和关闭后,我发现工作的唯一方法是禁用Winzip Courie(excel) add-in。这是通过“选项”对话框的“加载项”部分完成的。

答案 14 :(得分:0)

在Office 365中,我遇到了相同的问题-对我有用的是我用不同的名称保存了文件,当我重新打开新文件时,问题就消失了。

答案 15 :(得分:0)

我发现启用自动保存后会弹出此问题。关闭该功能后,我无需每秒编译即可进行编码。

答案 16 :(得分:-1)

在表单(“执行”)模式下打开表单时,将删除VBA编辑器中的空格。这可能是由于基于“On Timer”方法的后台执行。关闭Access中的表单解决了VBA中的问题。

答案 17 :(得分:-1)

当我停止输入时,我认为我从未见过VBE删除空格。如果你移动到另一条线,它将从线上移除trailling空间,但这是不同的东西,而不是我认为可以改变的行为。