VBA Excel删除多行

时间:2017-09-12 14:12:52

标签: excel vba excel-vba

这有效

  mySheet.Rows(CStr(activeRow) & ":" & CStr(activeRow + deletedRowAmount)).Delete

这不起作用

mySheet.Columns(CStr(columDelete) & ":" & CStr(columDelete + deletedRowAmount)).Delete

我在这里缺少什么?

错误 VBA运行时错误1004“应用程序定义或对象定义错误”

2 个答案:

答案 0 :(得分:3)

列在您使用它们时在字符串中使用时为A,B,C,....如果它们是数字,则需要稍微不同:

With mySheet    
    .Range(.cells(1,columDelete), .cells(1,columDelete + deletedRowAmount)).EntireColumn.Delete
End With

答案 1 :(得分:1)

一般来说,Scott Craner所说的内容已经足够了,但这是一种绕过它并让它变得更容易的方法:

Sub TestMe()

    Columns(GetColumnRange(2, 5)).Delete

End Sub

Public Function GetColumnRange(colStart As Long, colEnd) As String

    GetColumnRange = Split(Cells(1, colStart).Address(True, False), "$")(0) & _
              ":" & Split(Cells(1, colEnd).Address(True, False), "$")(0)

End Function

尝试TestMe功能,应删除2(B)5(E)的列。