Редактор VBA автоматически удаляет пробелы на концах строк

Есть ли способ убедить редактор VBA в Excel прекратить автоматическое форматирование строк, чтобы удалить пространство в конце, когда я делаю паузу при наборе текста на четверть секунды?

Ответ 1

Есть способ отключить автокоррекцию в редакторе VBA.

Tools Меню → OptionsEditor Вкладка → Очистить поле Auto Syntax Check

К сожалению, это не решит всех ваших проблем, поскольку редактор VBA имеет тенденцию иметь собственный разум, к лучшему или к худшему.

Ответ 2

У меня была эта точная проблема, и для меня это работало.

  • Нажмите кнопку Microsoft Office и выберите "Параметры Excel"
  • Выберите категорию надстроек
  • В поле "Управление" щелкните надстройки COM и нажмите "Перейти".
  • Посмотрите на добавление в "Add Add Add", а затем снимите флажок
  • restart excel

Этот аддон установлен с VS2010 Beta2

Ответ 3

В Excel 2010 кнопка Дизайн на вкладке Developer Ribbon Tab решает проблему для меня.

Ответ 4

У меня определенно была эта проблема раньше, когда редактор vba форматировал, когда я печатал (не только когда я перешел в другую строку). Для меня это похоже на элемент управления Microsoft Web Browser, который был у меня в открытой книге. Когда я достал веб-браузер, редактор VBA снова начал нормально работать. Я понятия не имею, почему это сработало, но так оно и было. Теперь я не использую этот элемент управления в своих книгах.

Ответ 5

Что-то заставляет вашу таблицу пересчитывать, когда вы находитесь в редакторе VBA, и это "компилирует" ваш код и, таким образом, разделяет пробелы. Вам нужно остановить повторное вычисление ячеек во время редактирования. Включение калькуляции в ручную в электронной таблице. Инструменты > Параметры > Расчет должен делать трюк.

Я заметил это, когда у меня были перерасчеты ячеек благодаря подключению DDE.

Ответ 6

У меня была такая же проблема несколько раз недавно, и я сбил меня с ума.

После прочтения этого сообщения все упомянутые разные исправления (никто не работал у меня), я вспомнил, что в последнее время я играл с Internet Explorer Control, открывая Internet Explorer из VBA.

Об этом говорится в некоторых ответах в этом сообщении.

Это привело меня к правильному пути и, чтобы исправить это, мне пришлось сначала удалить все экземпляры iexplore.exe(alt + control + delete), закрыть Excel и снова открыть excel. (iexplore.exe был открыт невидимым из кода VBA, и я не знал, что они работают)

Это исправило ошибку.

Я программировал довольно сильно с VBA более 4 лет и никогда не сталкивался с этой проблемой.

Всего пару недель назад я начал использовать элемент управления IE, и я начал получать эту проблему... поэтому в моем случае я могу только предположить, что ошибка напрямую связана с элементом управления IE.

Я одновременно запускаю оба Excel 2003 и 2007 на одном ПК, и проблема возникает только с excel 2007.

Ответ 7

Ничего из вышеперечисленного для меня. У меня был таймер Application.OnTime, который срабатывал каждую секунду, и это вызвало перерасчет чего-то: комментирование сделало мой день.

Ответ 8

Это начало происходить со мной недавно после добавления события Timer в форму Access 2007. Редактор VB "завершает" текущую строку (как если бы вы переместили курсор из инструкции, я отключил автоматический синтаксис) каждый раз, когда событие срабатывает (изначально я установил его на 1 секунду, теперь он установлен на 5 секунд и соответственно шкалы поведения). Чтобы код события выполнялся, приложение должно убедиться, что оно было скомпилировано. Предположительно, редактор должен быть в "нормальном" состоянии для этого, поскольку, вероятно, он должен проверять зависимости кода между модулями. Обратите внимание, что поведение происходит независимо от того, загружен ли какой-либо зависимый код в редактор в это время. Также обратите внимание, что сброс состояния выполнения не влияет на запуск события таймера. Как практический вопрос, можно закрыть триггерную форму, переключить ее на проектный вид, установить точку останова в запущенном коде или увеличить интервал таймера во время работы с редактором.

В отличие от комментария abhishek изменение настроек Инструменты/Параметры.../Общие/Компиляция по требованию и/или Фоновая компиляция не повлияли на проблему.

Ответ 9

Если это помогает, ни один из предыдущих ответов не разрешил мой. Только решение заключалось в том, чтобы закрыть файл xls и снова открыть его. Разочарование нужно делать каждые 30 минут, но, по крайней мере, это работает. Хотелось бы узнать, почему перекомпиляция и очистка текста... действительно должна быть возможностью отключить очистку текста, но не может найти его.

Ответ 10

Извлечение его из режима разработки постоянно фиксирует его на vba2003 - его сначала сводило с ума... Я заметил, что это может иметь какое-то отношение к веб-управлению, но когда я выхожу из режима разработки, отлично работает... просто переключите это, чтобы заставить его себя вести:)

Ответ 11

Отключите Tools > Options > General > Background Compile. Это решило это для меня.

Ответ 12

Сегодня я столкнулся с этой проблемой при новой установке бета-версии Excel 2010. Ничего из этого не имело никакого значения, но в центр доверия и отключение всех надстроек приложений исправила проблему для меня.

Ответ 13

У меня Office 2010 Pro, и у меня была такая же проблема. Когда я набираю пробел между каждым словом, удаляется. После того, как каждая из опций включила и выключила их, единственный способ, которым я нашел работу, - отключить Winzip Courie(excel) add-in. Это делается через раздел "Надстройки" диалогового окна "Параметры".

Ответ 14

Я не думаю, что когда-либо видел, как VBE удалял пробел, когда я прекратил печатать. Он удалит пробелы из строк, если вы перейдете на другую строку, но что-то другое, а не поведение, которое, я думаю, может быть изменено.

Ответ 15

Удаление пробелов в редакторе VBA для Access происходит, когда форма открыта в режиме Form ( "Execute" ). Вероятно, это связано с фоновым исполнением на основе методов On Timer. Закройте форму в Access, разрешите проблему в VBA.