2016-09-23 97 views
0

開始,這可能是一個簡單的問題,但我似乎無法在任何地方找到答案,而且對於VBA還是新手。我有一個將數據導出到excel的程序。我需要VBA代碼來刪除標題等於字符串的特定列。我遇到了問題,因爲一列是以'前面的單詞導出的。這裏是我的代碼:Excel VBA刪除列,第一個單元格以'

For i = 1 To 7 
If Cells(1, i).Value = "A" Then 
    Cells(1, i).EntireColumn.Delete 
ElseIf Cells(1, i).Value = "'B" Then 
    Cells(1, i).EntireColumn.Delete 
ElseIf Cells(1, i).Value = "C" Then 
    Cells(1, i).EntireColumn.Delete 
End If 
Next i 

問題是「B」列。我試過=「B」和=「'B」,都沒有工作。任何幫助是極大的讚賞!如果我不清楚,請告訴我。

我也試過:

ElseIf Cells(1, i).Value = Chr(39) & "B" Then 
    Cells(1, i).EntireColumn.Delete 
+0

您的列標題是否真的以'?開頭?難道它不像''嗎?嘗試將標題值直接複製到您的VBA代碼中。 –

+0

是的,它的確如此。我確實嘗試直接複製,但它仍然無法正常工作。 –

+0

我已經嘗試了「B」,「B」,「B」,Chr(34)和「B」,Chr(96)和「B」,並且沒有任何內容正在刪除該列。不幸的是,該列將處於不同的位置,所以我不能僅僅引用列號 –

回答

1

這裏簡單修復...不知道爲什麼我沒有想到這一點。由於我在「B」之前刪除了一列,所以它正在跳過它。解決方案是扭轉。謝謝各位的幫助!

For i = 7 To 1 Step -1 
If Cells(1, i).Value = "A" Then 
    Cells(1, i).EntireColumn.Delete 
ElseIf Cells(1, i).Value = "B" Then 
    Cells(1, i).EntireColumn.Delete 
ElseIf Cells(1, i).Value = "C" Then 
    Cells(1, i).EntireColumn.Delete 
End If 
Next i 
+0

有時它是我們都錯過的簡單的。 –

相關問題