2016-09-23 94 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

有时它是我们都错过的简单的。 –

相关问题