从特定行开始删除不需要的列 - excel vba

时间:2017-07-06 14:57:56

标签: excel vba excel-vba

出于某种原因,我无法弄清楚如何做到这一点......看起来很基本:

尝试从特定行开始删除不需要的列。

实施例: 想要从Wsh2的第10行开始删除C,D,E,M,N和L列。

'deleting columns that are unwanted
Cells(wsh2.Cells("C10"), wsh2.Cells("C10").End(xlDown)).EntireColumn.Delete
Cells(wsh2.Cells("D10"), wsh2.Cells("C10").End(xlDown)).EntireColumn.Delete
Cells(wsh2.Cells("E10"), wsh2.Cells("C10").End(xlDown)).EntireColumn.Delete
Cells(wsh2.Cells("M10"), wsh2.Cells("C10").End(xlDown)).EntireColumn.Delete
Cells(wsh2.Cells("N10"), wsh2.Cells("C10").End(xlDown)).EntireColumn.Delete
Cells(wsh2.Cells("L10"), wsh2.Cells("C10").End(xlDown)).EntireColumn.Delete
End Sub

我已经修改了我在这里使用Range的先前代码。我也尝试过使用Union和Range,但似乎无法弄明白。

基本上:在我复制上一个工作表中的一系列行之后,尝试仅删除从特定行开始的特定列。

任何帮助都会很棒。谢谢!

2 个答案:

答案 0 :(得分:1)

如果你使用EntireColumn.Delete它将删除整个列,你需要获取范围并删除它,例如。

Range("C10:C" & Rows.Count).Delete

答案 1 :(得分:0)

您实际上并不想删除整个列,如您所述。您想要清除单元格C10:CendD10:DendE10:EendM10:MendN10:NendL10:Lend。这是您希望代码执行的操作。导航到所选单元格,并清除该特定坐标下方的所有单元格。

为方便起见,您可以循环遍历从C10C10000的所有单元格,并删除每个单元格的内容,例如,实现起来非常简单,但可能效率最低