VBA Excel删除多行

这工作

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

这不起作用

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

我在这里错过了什么?

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

在使用string时,列是A,B,C …。 如果他们是数字,你需要做的稍微不同:

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

一般来说, 斯科特·克莱纳 ( 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)