Остановить Excel от изменения содержимого ячеек, когда-либо

Я работаю с номерами карт, такими как кредитная карта и идентификационные номера. Очевидно, мы не делаем никаких расчетов с номерами карт. Это "текст".

Я отформатирую их как текст, я набираю их как текст. Я знаю, как это работает. Excel все равно. 16-значные номера карт получают последнюю цифру, превращенную в ноль, превращенную в научную нотацию, тупое вещество, о котором я не говорил Excel.

Мне нужно делать такие вещи, как "Найти/удалить пробелы" из ячеек в файлах, загружаемых с нашей в настоящее время несовершенной веб-системы. Система отправляет мне файлы с 16-значными номерами, ячейки отформатированы как текст, но из-за ошибок в конце есть пробелы. Я нахожу/удаляю все пробелы, и все номера моих карт преобразуются в научную нотацию, а последняя цифра превращается в 0. ОНИ ТЕКСТ, они отформатированы как текст, я закричал на экран, что это текст, почему Excel отказывается признать, что они являются текстом? (Я предпочел бы найти способ остановить действие Excel, чем найти способ сказать нашим программистам поместить апостроф в каждую ячейку)

Как мне сделать так, чтобы Excel просто останавливался, делая что-то, что я ему не говорил? Или, по крайней мере, остановить это от того, чтобы делать что-либо, чтобы номера не нравились. Может быть, я могу написать макрос, когда он обнаруживает "Ухо, я должен изменить это число на что-то другое!" Я сделаю так, чтобы эта ячейка была напечатана тысячу раз.

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

Возможно ли это? У меня много тысяч чисел, которые нужно менять во многих разных сценариях. Я просто хочу остановить его от попыток помочь. Я не понимаю, почему это будет сложно. У меня есть 2007, но ответы на другие версии также будут замечательными.

Ответ 1

Я нашел решение. Выделите колонку, о которой идет речь. Щелкните правой кнопкой мыши и выберите "Форматировать ячейки". Выберите "Пользовательский", а затем выберите один 0 (ноль). Он сделает всю вашу колонку именно тем, как вы хотите.

Ответ 2

Извините, что возродил эту старую тему, но если кто-нибудь еще найдет это, это может помочь.

У меня была такая же проблема. Столбец в нашей базе данных содержит такие числа, как:

111206,1 111206,2 .. .. 111206,10 111206,11

а также даты в странном формате. Достаточно сказать, что это ОСНОВНАЯ ПИТА, чтобы вставить это в excel. Я также делал такие вещи, как кричать на моем экране, но Microsoft все еще, похоже, игнорирует этот очень полезный пользовательский ввод. (Еще одна заметка: я проголосую за регистрацию послекасания клавиатуры - если вы нажмете ENTER с более чем 80% максимальной силы, он должен пропустить любое диалоговое окно подтверждения и выполнить режим "just f *! @# $DO IT" выбранной команды Это означало бы крупный прорыв в дружелюбии суперпользователя ИМХО.)

В любом случае, коллега указал мне на вариант "Вставить специальный". Щелкните правой кнопкой мыши в ячейке Excel, выберите "Вставить специальный" и выберите "Текст". И престо.

Редко я чувствовал, что ошарашенное:)

Ответ 3

Простейшим из всех является копирование в Блокнот, а затем либо вставка новой ячейки или формата в виде текста, а затем копирование данных из Блокнота в таблицу Excel.

Ответ 4

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

Ответ 5

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

Ответ 6

Здесь макрос, который может сделать то, что вы хотите

Sub SafeFindAndReplace()

    Dim rCell As Range

    For Each rCell In ActiveSheet.UsedRange.Cells
        If InStr(1, rCell.Text, " ", vbBinaryCompare) > 0 Then
            If rCell.NumberFormat = "@" Then
                rCell.Value2 = CStr(Replace(rCell.Text, " ", ""))
            End If
        End If
    Next rCell

End Sub

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

Или в комментариях вы можете просто сделать это в выбранных ячейках. Лучше, если у вас действительно большие диапазоны, и вам нужно только это на меньшем подмножестве.

Sub SafeFindAndReplaceSelection()

    Dim rCell As Range

    If TypeName(Selection) = "Range" Then
        For Each rCell In Selection.Cells
            If InStr(1, rCell.Text, " ", vbBinaryCompare) > 0 Then
                If rCell.NumberFormat = "@" Then
                    rCell.Value2 = CStr(Replace(rCell.Text, " ", ""))
                End If
            End If
        Next rCell
    End If

End Sub

Ответ 7

Мне часто приходится выгружать данные из MySQL как csv. Всякий раз, когда csv, созданный другой программой, открывается с помощью Excel, если в поле содержится более 15 цифр, Excel настаивает на преобразовании в научную нотацию. Чтобы обойти это, я решил импортировать экспортированный CSV файл в электронную таблицу Документов Google. Затем я сохранил таблицу Документов Google как файл Excel, а вуаля, не более научную нотацию.

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

Ответ 8

Основываясь на том, что я читал для почтовых индексов, которые использовали пользовательский формат 00000-0000, я попытался создать пользовательский формат 0000000000000000. Он преобразовал научную нотацию обратно в 16 цифр.

Ответ 9

Нет форматирования в excel. Вот визуальный базовый код для этого:

Sub Format_CSV()
    'Go to the top cell of the column that you wish to format as text with no scientific notation hassle and then run this macro. Assign a shortcut key to make your life easier
    ActiveCell.Offset(0, 1).Columns("A:A").EntireColumn.Select
    Selection.Insert Shift:=xlToRight
    Selection.NumberFormat = "@"
    ActiveCell.Offset(0, -1).Range("A1").Select
    Dim ConvertToText As String
    Dim StartStop As Variant
    StartStop = ActiveCell

    Do While StartStop <> ""
        ConvertToText = ActiveCell
        ActiveCell.Offset(0, 1).Range("A1").Select
        ActiveCell = ConvertToText
        ActiveCell.Offset(1, -1).Range("A1").Select
        StartStop = ActiveCell
    Loop

    ActiveCell.Columns("A:A").EntireColumn.Select
    Selection.Delete Shift:=xlToLeft
End Sub

Ответ 10

Я нашел способ сохранить числа в текстовом формате даже при вставке нескольких ячеек. Я использую Excel 2010.

  • Выберите диапазон ячеек и используйте "Формат - Пользовательский". Применить (символ "at" ) в качестве формата.
  • Выберите значения из исходного файла.
  • Щелкните правой кнопкой мыши диапазон, чтобы вставить (или только левый верхний угол), и в разделе "Параметры вставки" выберите "Согласовать форматирование адресата".

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

Ответ 11

Откройте файл excel из приложения (не дважды щелкнув файл).

Затем выберите файл, но вместо нажатия кнопки "открыть" щелкните маленькую стрелку рядом с ним и выберите "Открыть и восстановить", затем нажмите кнопку "Восстановить", и появится мастер импорта текста, следуйте указаниям мастера и убедитесь, что вы выбираете текст для формата данных столбца на шаге 3 мастера.

Ответ 12

Либо

  • форматирует ячейки как текст (формат, ячейки, текст)
  • префикс числа с помощью '(одинарная кавычка)

Оба работают одинаково хорошо для меня.

Изменить: я тестировал замену пробелов ничем на эти "текстовые числа", и действительно, они превращаются в числа.

Попробуйте Google для "regex excel". Есть способы использовать регулярные выражения в Excel, и это позволит вам довольно легко префикс номера вашей кредитной карты с помощью одной цитаты.
Morefunc

Ответ 13

Формат, ячейки, текст щелкните правой кнопкой мыши, Вставить специальные, значения

или

Paste Формат, ячейки, текст Щелкните правой кнопкой мыши, вставьте специальные, значения

Ответ 14

Если вы пытаетесь скопировать данные из другого места Попробуйте Вставить специальные и выберите в качестве текста. Он должен сохранить исходный формат

Ответ 15

Даже форматирование в виде текста с использованием "0" или "#" не работало для меня с номерами более 15 цифр в Excel 2007.

Мне пришлось нажать кнопку приложения (значок офиса в левом верхнем углу ленты), нажать "Параметры Excel", перейти в подменю "Формулы" и в разделе "Правила проверки ошибок" справа снимите флажок "Числа" отформатированный как текст или предшествующий апострофе. '

При использовании опции # данные были отключены после 15-й цифры - все после 15-го числа стало нулевым, что неприемлемо.

Ответ 16

У меня всегда была одна и та же проблема - и все решения казались слишком сложными и не работали. Я отправляю посылки своим клиентам с использованием USPS и получаю длинное число, которое нельзя вставить в Excel без преобразования в формулу, если оно будет скопировано напрямую. Я попытался отформатировать столбцы в Text, но когда я скопировал данные, он всегда преобразовывался снова.

Тогда я заметил, что это трюк:

  • Отформатируйте столбец или вы хотите, чтобы номера были как текст.
  • Выберите только первую ячейку, а не весь столбец или область, в которой вы хотите данные, - это была моя ошибка все время, так как я всегда оставлял выбранную область.
  • Затем щелкните правой кнопкой мыши и выберите Вставить как текст.

Я боролся с этим в течение многих лет, пока я, наконец, не заработает! Теперь я могу копировать непосредственно из USPS без необходимости копирования в Word, преобразования в обычный текст и помещать странные символы перед каждым номером перед вставкой в ​​Excel.