2016-02-11 96 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

這可能是有點哈克,但它的工作原理:

更改.Replace "*-", "", xlPart, xlByRows, False, False, False到:

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

注單'作爲參數Replacement。這將導致像'05這樣的值,Excel將其解釋爲字符串 - 因此不會刪除任何零。

+0

它的作品完美!但爲什麼不打印「'」? 謝謝! –

+1

'''被解釋爲「嗨Excel,現在發生的是字符串!不要評價!」。因此,Excel不適用格式或公式。如果你可能想用'='開始一個單元格的值(並且沒有評估),這就是方法。 – Verzweifler