Это длинный запрос, потому что я включаю неудачный код.
Проблема: когда я закончил импортировать текстовый файл в Excel, мой рабочий лист содержит несколько «пустых» ячеек. Я успешно использовал следующий код в другом месте, но в этом случае он не работает для меня.
Range("b1:AZ60").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete shift:=xlToLeft
Я искал в Интернете и нашел ряд предлагаемых решений (ниже). Я пытался запустить каждый из 4 фрагментов кода ниже перед моим кодом выше, чтобы очистить содержимое предположительно пустых ячеек, но пока ничего не сработало.
Номер 1------------------------------------------------ ---------
Set rng = Intersect(Selection, Selection.Parent.UsedRange)
For Each C In rng
If Trim(C) = "" Then
C.ClearContents
End If
Next C
Я заменил обрезку выше на c.value, но ничего
If C.Value <> "" Then
Номер 2------------------------------------------------ --
For Each aCell In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants)
If Not aCell.Value Like "*[! ]*" Then aCell.ClearContents
Next
Номер 3------------------------------------------------ -
For Each C In rng
If IsEmpty(C) Then
C.Delete shift:=xlToLeft
Else
ActiveCell.Select
End If
Next C
Номер 4-----------------------------------------------------
Наконец я нашел эту чистую функцию, но, похоже, это не помогло.
Set rng = Intersect(Selection, Selection.Parent.UsedRange)
For Each C In rng
If Not IsError(C) Then
C.Value = MEGACLEAN(C)
End If
Next C
'
'
'
End Sub
-----------------------------------------
Function MEGACLEAN(varVal As Variant)
Dim NewVal As Variant
If IsMissing(varVal) Then Exit Function
NewVal = Trim(varVal) 'remove spaces
NewVal = Application.WorksheetFunction.Clean(NewVal) 'remove most unwanted characters
NewVal = Application.WorksheetFunction.Substitute(NewVal, Chr(127), "") 'remove
ASCII#127
NewVal = Application.WorksheetFunction.Substitute(NewVal, Chr(160), "") 'remove
ASCII#160
MEGACLEAN = NewVal
End Function
Возможно, это как-то связано с текстовым файлом, из которого я импортировал, но ни один из них не работал удовлетворительно, так как у меня все еще есть несколько пустых ячеек. Любая помощь приветствуется!!
?len(range("A1"))
в ближайшем окне. Результат, отличный от нуля, означает, что ячейки на самом деле не пусты. Если вы хотите проверить фактический текст, этот кодfor i=1 to len(range("A1")):?asc(mid(range("A1"),i,1));";";:next
покажет вам значения ascii символов - person SeanC   schedule 30.10.2012