Excel говорит мне, что мои пустые ячейки не пустые
Итак, в excel я пытаюсь избавиться от пустых ячеек между моими ячейками, у которых есть информация в них, используя F5 для поиска пустых ячеек, затем Ctrl + - для их удаления и перемещения ячеек. Но когда я пытаюсь это сделать, он говорит мне, что есть "Нет ячеек".
Я заметил, что если я выберу свои "пустые" ячейки, Excel по-прежнему будет считать их:
, что странно. Но если я нажимаю Delete на этих выделенных ячейках, счетчик уходит, а затем я могу пойти F5, пробелы, Ctrl + - и Shift ячейки вверх, и он работает...
Итак, мой вопрос: как я могу это сделать, но с этими пустыми ячейками, которые Excel думает, не пуст? Я попытался пройти и просто нажать delete над пустыми ячейками, но у меня много данных и понял, что это займет слишком много времени. Мне нужно найти способ выбора этих "пустых" ячеек в пределах выбора данных.
Заранее благодарим за помощь!:)
Ответы
Ответ 1
Откровение: Некоторые пустые ячейки на самом деле не пустые! Как я покажу, ячейки могут иметь пробелы, символы новой строки и true empty:
![example example]()
Чтобы быстро найти эти ячейки, вы можете сделать несколько вещей.
- Формула
=CODE(A1)
вернет #VALUE!, если ячейка действительно пуста, иначе число вернется. Это число номер ASCII, используемый в =CHAR(32)
.
- Если вы выберете ячейку и щелкните в строке формул и с помощью курсора выберите все.
![newline selection example newline selection example]()
Удаление этих:
Если в ячейках есть только пробел, их можно легко удалить, используя:
- Нажмите ctrl + h, чтобы открыть поиск и заменить.
- Введите одно место в , найдите, оставьте заменить пустым и убедитесь, что в параметрах есть галочка , соответствующая содержимому всей ячейки.
- Нажмите заменить все.
Если у вас новые строки, это сложнее и требует VBA:
- Щелкните правой кнопкой мыши на вкладке листa > код просмотра.
-
Затем введите следующий код. Помните, что Chr(10)
- это новая строка, которая заменяет это только по необходимости, например. " " & Char(10)
- это пробел и символ новой строки:
Sub find_newlines()
With Me.Cells
Set c = .Find(Chr(10), LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = ""
Set c = .FindNext(c)
If c Is Nothing Then Exit Do
Loop While c.Address <> firstAddress
End If
End With
End Sub
-
Теперь запустите свой код нажатием F5.
После файла. Выберите диапазон интересов для повышения производительности, затем выполните следующее:
Sub find_newlines()
With Selection
Set c = .Find("", LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = ""
Set c = .FindNext(c)
If c Is Nothing Then Exit Do
Loop While c.Address <> firstAddress
End If
End With
End Sub
Ответ 2
простой способ выбрать и очистить эти пустые ячейки, чтобы сделать их пустыми:
- Нажмите ctrl + a или предварительно выберите диапазон
- Нажмите ctrl + f
- Оставьте найти что пустым и выберите соответствие содержимому всей ячейки.
- Хит найти все
- Нажмите ctrl + a, чтобы выбрать все найденные пустые ячейки.
- Закройте диалоговое окно поиска
- Нажмите backspace или delete
Ответ 3
Это сработало для меня:
- CTR-H для поиска и замены
- оставить "Найти, что" пусто.
- измените "Заменить на" на уникальный текст, что-то, что вы ищете
положительный не будет найден в другой ячейке (я использовал "xx" )
- нажмите
"Заменить все"
- скопируйте уникальный текст на шаге 3 на "Найти, что"
- удалить уникальный текст в 'Replace with'
- нажмите "Заменить все"
Ответ 4
У меня была аналогичная проблема, когда разбросанные пустые ячейки из экспорта из другого приложения все еще отображались в подсчетах клеток.
Мне удалось очистить их
- Выбор столбцов/строк, которые я хотел очистить, затем выполнив
- "Найти" [нет текста] и "Заменить" [слово выбора].
- Затем я сделал "Найти" [слово выбора] и "Заменить" с помощью [без текста].
Он избавился от всех скрытых / phantom символов в этих ячейках. Может быть, это сработает для вас?
Ответ 5
Все, это довольно просто. Я пытаюсь сделать то же самое, и это то, что сработало для меня в VBA
Range("A1:R50").Select 'The range you want to remove blanks
With Selection
Selection.NumberFormat = "General"
.Value = .Value
End With
С уважением,
Ананд Ланка
Ответ 6
Если у вас нет форматирования или формул, которые вы хотите сохранить, вы можете попробовать сохранить файл в виде текстового файла с разделителями табуляции, закрыв его и повторно открыть с помощью excel. Это сработало для меня.
Ответ 7
'Select non blank cells
Selection.SpecialCells(xlCellTypeConstants, 23).Select
' REplace tehse blank look like cells to something uniqu
Selection.Replace What:="", Replacement:="TOBEDELETED", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'now replace this uique text to nothing and voila all will disappear
Selection.Replace What:="TOBEDELETED", Replacement:="", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Ответ 8
Найден другой путь. Установите AutoFilter для всех столбцов (важно или вы будете неправильно определять данные), выбрав строку заголовкa > вкладка "Данные" > Сортировка и фильтр - "Фильтр". Используйте раскрывающийся список в первом столбце данных, отключите "Выбрать все" и выберите только параметр "(Бланки)" > [OK]. Выделите строки (теперь все вместе) > щелкните правой кнопкой мыши > "Удалить строку". Вернитесь в раскрывающийся список > "Выбрать все". Presto:)
Ответ 9
Не уверен, что это уже было сказано, но у меня была аналогичная проблема с ячейками, которые ничего не отображали в них, но не были пустыми при запуске формулы IsBlank().
Я выбрал весь столбец, выбрав "Найти и заменить", нашел ячейки ничем и заменил на 0, затем снова нашел и заменил, найдя ячейки с 0 и заменив "".
Это решило мою проблему и позволило мне искать ячейки Пустоты (F5, Special, Blanks) и удалять строки, которые были пустыми. BOOM.
Может не работать для каждого приложения, но это решило мою проблему.
Иногда в ячейках есть пробелы, которые выглядят пустыми, но если вы нажмете F2 на ячейке, вы увидите пробелы. Вы также можете искать этот путь, если знаете точное количество пробелов в ячейке
Ответ 10
Это работает с числами.
Если ваш диапазон равен O8: O20, то в ближайшем пустом диапазоне (например, T8: T20) введите = O8/1 и заполните. Это даст вам результат #VALUE для "пустых" ячеек, и ваш исходный номер останется таким, каким он был.
Затем, если выбран диапазон T8: 20 (CTL- *, если он еще не был), нажмите F5 и выберите Special. В специальном диалоге выберите "Ошибки" и нажмите "ОК". Это отменит выбор ваших фактических номеров, оставив только выбранные ячейки #VALUE. Удалите их, и у вас будут фактические пустые ячейки. Скопируйте T8: T20 и вставьте обратно O8: O20.
По существу, поскольку пустые ячейки не работают, вам нужно преобразовать "пустые" ячейки в то, что может зайти на "Go To Special". Любые действия, которые будут конвертировать в #VALUE, будут работать, а также другие типы ошибок.
Ответ 11
Мой метод похож на предложение Курта выше о сохранении его в виде файла с разделителями табуляции и повторного импорта.
Он предполагает, что ваши данные имеют только значения без формул.
Вероятно, это хорошее предположение, потому что проблема "плохих" пробелов вызвана путаницей пробелов и нулей - обычно в данных, импортированных из какого-либо другого места, - поэтому не должно быть никаких формул.
Мой метод синтаксический анализ на месте - очень похож на сохранение в виде текстового файла и повторный импорт, но вы можете сделать это без закрытия и повторного открытия файла.
В разделе "Данные" > "Текст-в-столбцы" > "Разграничено" > удалите все синтаксические символы (также можно выбрать "Текст", если хотите) > "Готово". Это должно заставить Excel повторно распознать ваши данные с нуля или из текста и распознать пробелы как действительно пустые.
Вы можете автоматизировать это в подпрограмме:
Sub F2Enter_new()
Dim rInput As Range
If Selection.Cells.Count > 1 Then Set rInput = Selection
Set rInput = Application.InputBox(Title:="Select", prompt:="input range", _
Default:=rInput.Address, Type:=8)
' Application.EnableEvents = False: Application.ScreenUpdating = False
For Each c In rInput.Columns
c.TextToColumns Destination:=Range(c.Cells(1).Address), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, _
FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
Next c
Application.EnableEvents = True: Application.ScreenUpdating = True
End Sub
Вы также можете включить эту прокомментированную строку, чтобы выполнить эту подпрограмму "в фоновом режиме". Для этой подпрограммы она улучшает производительность лишь незначительно (для других это может реально помочь).
Имя F2Enter, потому что оригинальный ручной метод для устранения этой проблемы с пробелами заключается в том, чтобы Excel распознал формулу, нажав F2 и Enter.
Ответ 12
Вот как я исправил эту проблему без какой-либо кодировки.
- Выберите весь столбец, из которого я хочу удалить "пустые" ячейки.
- Нажмите вкладку Условное форматирование вверху.
- Выберите "Новое правило".
- Нажмите "Отформатировать только ячейки, содержащие".
- Измените "между" и "равным".
- Щелкните поле рядом с полем "равным".
- Нажмите одну из проблемных "пустых" ячеек.
- Нажмите кнопку "Формат".
- Выберите случайный цвет, чтобы заполнить поле.
- Нажмите "ОК".
- Это должно изменить все проблемы "пустые" ячейки на выбранный вами цвет. Теперь щелкните правой кнопкой мыши одну из цветных ячеек и перейдите к "Сортировка" и "Поместите выделенный цвет ячейки сверху".
- Это поместит все ячейки проблемы в верхнюю часть столбца, и теперь все ваши другие ячейки останутся в исходном порядке, в который вы их разместили. Теперь вы можете выбрать все ячейки проблем в одной группе и нажать удалить кнопку ячейки сверху, чтобы избавиться от них.
Ответ 13
Самое простое решение для меня состояло в следующем:
1) Выберите диапазон и скопируйте его (ctrl + c)
2) Создайте новый текстовый файл (в любом месте, он скоро будет удален), откройте текстовый файл, а затем вставьте в excel информацию (ctrl + v)
3) Теперь, когда информация в Excel находится в текстовом файле, выполните выделение в текстовом файле (ctrl + a), а затем скопируйте (ctrl + c)
4) Перейдите к началу исходного диапазона на шаге 1 и вставьте эту старую информацию из копии на шаге 3.
СДЕЛАНО! Больше никаких ложных заготовок! (теперь вы можете удалить временный текстовый файл)
Ответ 14
Goto- > Special- > пробелы не любят объединенные ячейки. Попытайтесь отключить ячейки выше диапазона, в котором вы хотите выбрать пробелы, а затем повторите попытку.
Ответ 15
У меня была аналогичная проблема с получением формулы COUNTA для подсчета непустых ячеек, она подсчитывала все из них (даже пустую, как непустую), я попробовал = CODE(), но у них не было пробелов или новых линий.
Я обнаружил, что когда я щелкнул по ячейке и затем щелкнул, то формула будет считать ячейку. У меня было тысячи ячеек, поэтому я не мог этого сделать вручную. Я написал этот оператор VBA, чтобы буквально проверить все ячейки, и если они были пустыми, чтобы сделать их пустыми. Игнорируйте бессмысленность этого макроса и доверяйте мне, что он действительно работал, заставляя Excel распознавать пустые ячейки как фактически пустые.
'This checks all the cells in a table so will need to be changed if you're using a range
Sub CreateBlanks()
Dim clientTable As ListObject
Dim selectedCell As Range
Set clientTable = Worksheets("Client Table").ListObjects("ClientTable")
For Each selectedCell In clientTable.DataBodyRange.Cells
If selectedCell = "" Then
selectedCell = ""
End If
Next selectedCell
End Sub