У меня есть файл Excel, где все контролируется с помощью макроса.В какой-то момент я перемещаю файлы с одного листа на другой, где эти данные хранятся в виде невыполненной работы.
Затем я пытаюсь выбрать пустые ячейки и удалить строку, если она истинна.Но ячейки кажутся пустыми, но не являются.
Поэтому я перемещаю их с листа A на лист B. Данные на листе A перемещаются и вставляются как значения на листе B. У перемещаемых данных есть два столбца:Столбец A содержит идентификатор элемента, а столбец B содержит дату, когда элемент перестает существовать (Дата прекращения).
В листе A Дата прекращения действия заполняется с помощью простой формулы (= + IF (O5 <> "").; O5; N5)) где, если нет нового ввода Cease Date, извлекать из журнала невыполненных работ.
Теперь, если нет ни нового ввода Cease Date, ни каких-либо задержек, ячейка пуста.
Когда макрос копирует и вставляет (в виде значений) данные из листа A в лист B, столбец B заполняется пустыми ячейками (как и предполагалось), но есть что-то невидимое из-за отсутствия лучшего слова.Почти как при форматировании или когда вы можете столкнуться со скрытыми символами, не видимыми кроме ANSI.
ЕСЛИ я выбираю любую из пустых ячеек и нажимаю клавишу удаления, затем запускаю «Перейти к специальному ...»и пробелы, ячейка выбирается функцией.
Я использую эту строку для удаления пробелов:
Columns("B").SpecialCells(xlBlanks).EntireRow.Delete
Это сегмент моего кода, который копирует / вставляет и обрабатываетДата окончания раздела:
Sheets("Dashboard").Select
Range("B3:Q400").Select
Selection.Copy
Sheets("CeaseDate").Select
Range("F1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("G:T").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Range("F1:G1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Columns("F:G").Select
Selection.Delete Shift:=xlToLeft
Columns("B").SpecialCells(xlBlanks).EntireRow.Delete 'Remove rows that does not contain a Cease Date <--- This does not work since it wont treat the blank cells as blank
'Range converting to date format
Columns("B:B").Select
Selection.NumberFormat = "m/d/yyyy"
Columns("A:B").Select
ActiveSheet.Range("A:B").RemoveDuplicates Columns:=Array(1, 2), _
Header:=xlYes
Selection.End(xlUp).Select