2017-06-16 109 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

相关问题