2013-05-08 4 views
3

Ключ-ключ должен довести меня до нижней части , самой правой ячейки. Тем не менее, в некоторых случаях это выходит за рамки этого, а это означает, что сотни ячеек опущены, даже если на этих ячейках нет данных.Ctrl-End не доводит меня до последней ячейки

Можете ли вы посоветовать сценарий VBA о том, как очистить те, возможно, невидимые данные, которые приводят к этому? Я уверен, что он не работает с обычным удалением, так как, несмотря на это, он по-прежнему ведет себя одинаково.

+6

Когда я их получаю, я удаляю дополнительные столбцы и строки и сохраняю. Когда я снова открываю, эта «ошибка» исправлена. В противном случае, я думаю, вы также можете скопировать/вставить полезную информацию на новый рабочий лист. – Jerry

ответ

2

Этот скрипт сбрасывает последнюю использованную строку для любого листа, который активен при его запуске.

Sub Reset() 

    Dim lngCount As Long 

    lngCount = ActiveSheet.UsedRange.Rows.Count 

End Sub 
+0

Я принимаю это как ответ, поскольку он решает проблему, не заставляя меня совершать покупки. Я просто назначаю F5 этому макросу, и проблема действительно решена. Спасибо. –

+0

Я не понимаю.Он просто создает числовую переменную и присваивает ей значение. Он ничего не делает для самой книги. – Ans

+0

Это заставляет Excel пересчитать последнюю ячейку. Попробуйте этот тест в новой книге. Введите номера ячеек A1: A6, выберите A1, нажмите Ctrl + End, он выберет ячейку A6. нажмите клавишу удаления, чтобы удалить номер в A6, выберите A1, нажмите Ctrl + End, выбрана ячейка A6, даже если в ней нет данных. Запустите макрос. Выберите A1, нажмите Ctrl + End, теперь он будет выбирать ячейку A5, последнюю ячейку с данными в ней. –

7

Ctrl-End переносит вас в нижнюю правую ячейку, он просто использует разные правила для того, что вы ожидаете при принятии решения о том, что должна делать эта ячейка. Почти любая ячейка, на которую ссылается каким-либо образом, будет включена в решение. Это раздражает, но именно так работает Excel.

Here's a description of how to address the problem.

Перефразируя:

  1. Выберите последнюю ячейку, содержащую данные в лист
  2. Чтобы удалить все неиспользуемые строки:

    • Перемещение на одну строку вниз от последней ячейки с данными.
    • Удерживая Ctrl и клавиши переключения, и нажмите клавишу Вниз
    • правой кнопки мыши в выбранных ячейках со стрелками, и из контекстного меню выберите команду Удалить
    • Выберите всю строку, нажмите кнопку OK.
  3. удалить всю строку

  4. Чтобы удалить все неиспользуемые столбцы:

    • Переместить вправо один столбец из последней ячейки с данными.
    • Удерживая Ctrl и клавиши переключения, и нажмите правую клавишу со стрелкой
    • правой кнопкой мыши в выбранных ячейках, и из контекстного меню выберите команду Удалить
    • Выберите весь столбец, нажмите кнопку OK.
  5. Сохраните файл. Примечание. В старых версиях Excel вам может потребоваться «Сохранить», затем закрыть и повторно открыть файл до сброса используемого диапазона.

+5

Сохранение - важная вещь, так как это conterinctuitive – momobo

+0

@momobo Yup, это работает. Я думаю, что это «Сохранить», который сбрасывает сетку. Спасибо, оба. –

Смежные вопросы