Можете ли вы редактировать содержимое ячейки Excel без двойного щелчка по ней?

28

У меня есть список из примерно 10000 имен / адресов, которые я должен вручную очистить в Excel (забавно!). Как вы можете себе представить, необходимость двойного щелчка для ввода почти каждой ячейки для ее редактирования - это перетаскивание. И расстраивает то, что если вы хотя бы немного приблизитесь к верхней / нижней части ячейки, вы окажетесь в верхней / нижней части листа!

Есть ли способ заставить Excel оставаться в «режиме редактирования», чтобы при нажатии на ячейку (или, что еще лучше, прокрутить вниз до нее) она автоматически позволяла мне редактировать содержимое? Я не могу просто начать печатать, так как это перезаписывает всю ячейку, когда часто мне просто нужно отредактировать 1 или 2 символа. Спасибо.

Дэвид Гард
источник
1
Это грязный обходной путь, но как насчет преобразования его в CSV, разделения запятыми и редактирования с помощью Блокнота или любого другого текстового редактора, который вам нравится?
Гроностай
9
Вы уверены, что нет сценария или функции, которая может сделать это "очистить" для вас? Столкнувшись с подобной ситуацией, я взял все данные из Excel и успешно запустил их с помощью небольшого сценария регулярных выражений.
Моисей
19
Определенно посмотрите, что говорит Моисей. Если вы делаете что- то 10000 раз вручную, значит, вы делаете это неправильно.
Таннер Фолкнер
@ Моисей - К сожалению, нет. Эти записи поступают из базы данных, и это, главным образом, поле «Имя адреса», которое перепутано, и данные очень противоречивы. Некоторые говорят что-то вроде «Смит Джон Мистер и Смит Джоан Миссис», что должно быть «Мистер и миссис Дж. Смит», другие - пустые и т. Д. Это, по сути, начало очень большого проекта.
Дэвид Гард
1
@datatoo - имена должны быть читаемы, чтобы их можно было использовать по адресам. Из-за того, что несколько баз данных были объединены в одну за многие годы (и люди ленивы), данные в ячейке противоречивы. У меня нет ссылочной ячейки, и когда эта часть проекта будет завершена, я разделю данные на Приветствие, Инициалы, Фамилию и т. Д. Именно с этого момента я могу начать использовать автоматизацию.
Дэвид Гард

Ответы:

20

Вы можете сделать это с помощью следующего макроса. Это приведет к тому, что ваш Excel будет вести себя так, как если бы вы нажимали F2каждый раз при изменении выбора в электронной таблице.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    SendKeys "{F2}"
End Sub

Нажмите Alt+, F11чтобы открыть редактор VBA, разверните левое древовидное представление, пока не увидите нужный лист, дважды щелкните по нему и вставьте туда приведенный выше код.

Вы можете отключить это, просто добавив 'перед строкой кода комментарий, например:

'SendKeys "{F2}"

Или, я думаю, удалив его полностью.


Это также работает очень хорошо, если вы используете enterдля перемещения ячеек (что, я подозреваю, является вашим основным намерением), так как он сразу же начнет редактировать их и позволит вам двигаться намного быстрее.

enderland
источник
Кстати, спасибо за вопрос, я собираюсь использовать это сам по себе, так как это намного лучше для большого количества манипуляций с данными!
enderland
Отлично! Это именно то, что я хочу для этой книги, большое спасибо. Единственная небольшая странность, которую я заметил, заключается в том, что если я использую «Shift + Tab» для перемещения по клеткам вправо-влево, мне приходится каждый раз нажимать «Shift», а не просто удерживать его нажатым.
Дэвид Гард
3
Помните, что использование VBA таким образом имеет свои недостатки. В частности, это исключит любую функциональность отмены на листе. Так что, если вы случайно облажаетесь и удаляете некоторые данные, лучше создать резервную копию. Кроме того, клавиши со стрелками больше не работают для навигации по листу.
Excellll
3
@Excellll имеет отличную точку зрения; Ваша функциональность отмены потеряна. Для такого простого макроса это не стоит того. Попробуйте вместо этого использовать AutoHotKey - вы можете сказать, чтобы он нажимал F2 после Enter, Shift-Enter, Tab или Shift-Tab. (И вы можете убедиться, что он работает только в Excel.)
benshepherd
19

Вы можете перейти в режим редактирования с клавиатуры с помощью F2клавиши, или вы можете создать макрос VB, который имеет всплывающее окно / приглашение. Хотя, строго говоря, я не знаю, какой вариант оставаться в F2режиме, вы можете написать небольшой скрипт в Excel, который идет вниз на одну строку и переходит в ячейку (затем этот макрос заменяет ваш «возврат / табуляция» на новый столбец) ,

Редактировать. Другой вариант - управлять этими изменениями через другую программу с более доступным пользовательским интерфейсом для данных такого типа. Например, поместите все эти данные в программу базы данных, такую ​​как Access, а затем управляйте полями данных через их пользовательский интерфейс.

Тем не менее, все это позволяет избежать основной проблемы: почему 10000 строк данных требуют ручной очистки? Если написание единого сценария, чтобы управлять ими всеми, слишком громоздко, почему бы не разбить таблицу на значимые группы и заняться ими таким образом? Трудно представить, что 10000 полей данных должны быть обработаны вручную и обходного пути нет.

Моисей
источник
1
Спасибо за подсказку F2, это помогает. Я постараюсь переписать клавиши возврата / табуляции для этой таблицы с помощью этой функции. Спасибо.
Дэвид Гард
@DavidGard без проблем. Я также обновил свой ответ с третьей альтернативой, которая может работать для вас.
Моисей
3
+1...why is there 10,000 rows of data that require manual cleaning?
Icode4food
7

Единственный способ, которым я знаю, - это нажать F2. Это работает каждый раз, пока вы не нажмете Return/ Enterчтобы убрать текущую ячейку.

Kevdog777
источник
2

Возможным ответом может быть программа под названием «Средняя кнопка мыши (или колесо) для Doubleclick», она доступна в codeproject. Я не знаю, стоит ли публиковать здесь ссылки, но я уверен, что Google может быть вашим другом. то, что он делает, пока он активен, вы можете щелкнуть средней кнопкой мыши одним щелчком мыши, и он отправит двойной щелчок левой кнопкой мыши на ваш компьютер.

Дэн
источник
0

Нажатие «F2», возможно, лучший выбор, хотя он не останется в режиме редактирования. Если вы знаете, какие правки вы хотите выполнить, поиск / замена (Ctrl + F) также очень полезен и может сэкономить вам много времени. Кроме того, вы можете найти список из более чем 200 сочетаний клавиш Excel здесь .

Карлос Манта
источник
0

выделите весь столбец и используйте поиск и замену. просто поставьте пустое место на оба поиска и замены, тогда он будет обновляться - вот так вы можете обмануть Excel, и это работает

превосходить
источник
0

Попробуйте формулу = concatenate. Объедините информацию двух ячеек вместе. Затем вы можете скопировать и вставить значения.

Люк
источник
0

Проверьте параметры ячейки формата ... если ячейка имеет скрытую отметку на вкладке защиты, это не даст вам возможность редактировать письменный текст ячейки. флажок должен быть снят, чтобы увидеть содержимое поля и редактировать его, как вам нужно.

user500030
источник
Это на самом деле не отвечает на то, что было задано в вопросе. Еще чуть-чуть, вы сможете добавить полезную информацию в комментарии.
fixer1234 21.09.15
0

Это было самое простое решение, которое сработало для меня.

http://ccm.net/forum/affich-172180-unable-to-change-date-format-in-excel

  1. Сначала измените свой формат на конкретную дату, которую вы хотите для вашего столбца данных.
  2. Выбрав столбец, выберите «Копировать»
  3. Открыть блокнот (НЕ СЛОВО, это должен быть блокнот)
  4. Вставьте ваши данные в блокнот.
  5. В блокноте нажмите CTRL + A (выделение всех ячеек), затем нажмите CTRL + C (копирование данных)
  6. Вставьте данные обратно в Excel.
  7. Это скажет что-то о размере, не то же самое, вставьте это так или иначе.
Майкл Лапалм
источник
0

Если вы редактируете ячейки без формулы или что-то, что можно сделать только в Excel, просто скопируйте эти ячейки и вставьте их как обычные столбцы или таблицу в документ Word. Отредактируйте данные в этой таблице свободно, а затем скопируйте обратно в исходное место в Excel.

Джек
источник