2016-02-11 2 views
0
With Range("Q10", Range("Q" & Rows.Count).End(xlUp)) 
.Replace "*-", "", xlPart, xlByRows, False, False, False 
.Replace " -", "", xlPart, xlByRows, False, False, False 
End With 
With Range("X10", Range("X" & Rows.Count).End(xlUp)) 
.Replace "*-", "", xlPart, xlByRows, False, False, False 
.Replace " -", "", xlPart, xlByRows, False, False, False 
End With 

Dim threeCell As Range 
For Each threeCell In Range("Q10", Range("Q" & Rows.Count).End(xlUp)) 
With threeCell 
    .Value = Trim(.Value) 
End With 
Next threeCell 

Привет всем, используя этот код для удаления данных из столбца. Этот столбец содержит данные типа «DE-45» «CZ-DZX», и он отлично работает, удаляет «DE-», и он оставляет ячейки только с тем, что я хочу, проблема заключается в том, что ячейка является чем-то вроде этого »DE-03 «это дает мне« 3 »вместо« 03 ».vba excel удалить данные-> остаться 0

Как я могу это исправить?

Спасибо!

+0

Попробуйте форматировать ячейку в виде текста. Таким образом, форматирование номера Excel не должно сокращать '03' до' 3'. – Verzweifler

+0

Я сделал это, и он не работает, макрос удаляет все «0» s –

ответ

2

Это может быть немного Hacky, но это работает:

Изменить .Replace "*-", "", xlPart, xlByRows, False, False, False на:

.Replace "*-", "'", xlPart, xlByRows, False, False, False

Примечание единственный ' в качестве параметра для Replacement. Это приведет к значению '05, которое Excel интерпретирует как String - таким образом, не удаляя нули.

+0

Он отлично работает! но почему он не «печатает» «»? СПАСИБО! –

+1

'' 'интерпретируется как« Эй, Excel, что сейчас происходит, это строка! Не оценивайте! ». Таким образом, Excel не применяет форматирование или формулы. Если вы, возможно, захотите начать значение ячейки с помощью '=' (и не оценивать ее), это так. – Verzweifler

Смежные вопросы