Принудительное обновление «последней» ячейки рабочего листа - PullRequest
8 голосов
/ 21 января 2010

Нажатие Ctrl + Конец в Excel приведет вас к крайней правой нижней ячейке рабочего листа.

Если вы удалите последние строки или столбцы и сохраните книгу, эта последняя ячейка будет обновлена, а также полосы прокрутки.

Я помню, что вы могли запустить однострочную команду VBA, которая бы выполняла обновление, не сохраняя книгу, но я не могу вспомнить, что это за команда - у вас есть идеи?

Ответы [ 7 ]

17 голосов
/ 21 января 2010

Вот ответ:

Sub x()
    ActiveSheet.UsedRange
End Sub

Запустите это, и последняя ячейка будет сброшена.

14 голосов
/ 06 января 2014

Я нашел что-то, что последовательно работает для удаления этих пустых строк. Вы можете сказать, когда «используемый диапазон», используемый Excel, слишком велик и собирается добавить дополнительные пустые строки, когда вы используете полосу прокрутки вправо, и она выходит за пределы последней строки фактических данных при прокрутке вниз. Это приведет к добавлению дополнительных пустых записей в таблицу при ее импорте в SQL.

Чтобы избавиться от них:

  1. Выберите всю первую строку под последней строкой данных. Нажмите Ctrl + Shift + Стрелка вниз , чтобы выделить все пустые строки.
  2. На вкладке «Главная» выберите «Очистить», а затем «Очистить все» в меню «Правка» (изображение беловато-серого ластика).
  3. Щелкните правой кнопкой мыши и выберите Удалить.
  4. Сначала перейдите в ячейку A1, а затем - Сохранить.
  5. Нажмите Ctrl + Home , а затем Ctrl + End (Это должно привести к правильной последней ячейке в используемом диапазоне ( над пустыми строками).
  6. Нажмите Сохранить еще раз.
5 голосов
/ 25 июля 2018

Если ничего из вышеперечисленного не работает, попробуйте это.

Выберите неиспользуемые строки и измените высоту строки.

Теперь удалите строки и сохраните.

Бинго!

1 голос
/ 18 февраля 2018

Вот что я сделал ... так как нет из вышеперечисленного сработало (на этот раз это печально, потому что этот код работал прекрасно, тогда все внезапные xlCellTypeLastCell полностью подвели меня) будет работать только в том случае, если вы жестко закодируете первую ячейку региона, которую хотите захватить последней ячейкой ... например, я вставлял таблицы данных в лист из 12-40 столбцов и 60-90 строк ... но так как это было вставить, это всегда начиналось в ячейке A79 ...

Worksheets("Data_Import").Activate
Range("A79").CurrentRegion.Select
A = Selection.Rows.Count - 1
B = Selection.Columns.Count - 1
Selection.Offset(A, B).Resize(1, 1).Select
Set DataEnd = Selection

Мне грустно НЕ использовать классные специальные клетки, но, увы, если это не сработает! тогда я просто не могу это использовать. : C

p.s. - Вы также можете добавить

ActiveSheet.Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Select
0 голосов
/ 21 декабря 2018

По какой-то причине один код ActiveSheet.UsedRange у меня не работал в 64-разрядной версии Excel 2016, чтобы заставить Excel сбросить последнюю использованную ячейку.

Это работает для меня. Надеюсь, это поможет.

Rows(25:415).Clear   'deletes contents and formatting
ActiveSheet.UsedRange   'resets last used cell
0 голосов
/ 03 января 2017

Проверить http://dmcritchie.mvps.org/excel/lastcell.htm#MakeLastCell, нашел ссылку на аналогичный вопрос.

Далеко не забытый лайнер, но решил проблему для меня.

В качестве альтернативы;

  1. Включить ручной расчет (для сохранения ссылок).

  2. создать новый лист.

  3. Копировать ячейки и имя старого листа.

0 голосов
/ 05 ноября 2016

Это решение работает для Excel 2013, но может также работать для самых последних версий Excel:

  • Выберите лист, на котором вы хотите изменить последнюю ячейку, и удалите все неиспользуемые строки и столбцы
  • Нажмите Файл - Параметры - Настроить ленту
  • В разделе «Основные вкладки» установите флажок «Разработчик» и нажмите кнопку ОК
  • На появившейся ленте разработчика щелкните Visual Basic
  • В верхнем левом углу, под объектами Microsoft Excel, щелкните по имени листа, где вы хотите принудительно обновить последнюю ячейку листа
  • В меню выберите «Выполнить - обновить», затем закройте окно Visual Basic

Когда вы нажимаете Ctrl + End, ваша последняя ячейка должна быть обновлена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...