2017-06-16 36 views
-3

我需要Excel/VBA宏的幫助。我在列A(1,2,3,A,B,C等)中有單個字符值,並且需要刪除列B,C,D中同一行的值(Shift:= xlToLeft) 「T開始與特定的字符從A列Excel VBA /刪除單元格,如果它們的值與參考單元格的值不一致

所以這個位置:

| 1 | 12345 | 23456 
| 3 | 42280 | 42280 
| 2 | 20613 | 20614 | 33221 
| 5 | 51953 | 
| 2 | 21895 | 22222 | 28932 
| 7 | 70119 | 61002 
| A | A1111 | 70142 

應該在這裏變成了這樣:

| 1 | 12345 | 
| 3 | 
| 2 | 20613 | 20614 | 
| 5 | 51953 | 
| 2 | 21895 | 22222 | 28932 
| 7 | 70119 | 
| A | A1111 | 

謝謝您的幫助

+2

你嘗試過什麼?我們需要看到你的代碼 – Ibo

+0

對不起Ibo我太羞愧自己發佈了:( – Stphn

回答

-1

燦現在不要考慮這個,因爲我在莫膽汁,但這應該工作,假設你開始在單元格A1

Dim rCheck As Range, i As Integer, iCol As Integer 

Set rCheck = Range("A1") 'top left cell of your table 
iCol = 5 'width of your table 

Do While rCheck <> "" 
    For i = 2 To iCol 
     If Cells(rCheck.Row, i) <> "" And Left(Cells(rCheck.Row, i), 1) <> Left(rCheck.Value2, 1) Then 
       Cells(rCheck.Row, i).Delete (xlToLeft) 
       i = i - 1 
       End If 
    Next i 
Set rCheck = rCheck.Offset(1, 0) 
Loop 
+0

Omg非常感謝你Plaidpenguinhat!我試圖自己做幾個小時,但你的建設是第一個實際上但是,如果A列中的字符是一個字母而不是數字,它就會起作用。你碰巧有一個想法是爲什麼?我不能解決問題。而且,當我替換時,整個事情不再起作用.ClearContents by .Delete shift:= xlToLeft。它不會再遍歷所有的行,我假設它已經連接到.offset事物上。 – Stphn

+0

這會起作用,只需要更具體地說明它正在檢查的特徵。也改爲.delete – Plaidpenguinhat

相關問題