VBA Excel删除多行

VBA Excel删除多行,vba,excel,Vba,Excel,这很有效 mySheet.Rows(CStr(activeRow) & ":" & CStr(activeRow + deletedRowAmount)).Delete 这行不通 mySheet.Columns(CStr(columDelete) & ":" & CStr(columDelete + deletedRowAmount)).Delete 我错过了什么 错误为VBA运行时错误1004“应用程序定义或对象定义错误”列为A、B、C、,。。。当您在使

这很有效

  mySheet.Rows(CStr(activeRow) & ":" & CStr(activeRow + deletedRowAmount)).Delete
这行不通

mySheet.Columns(CStr(columDelete) & ":" & CStr(columDelete + deletedRowAmount)).Delete
我错过了什么


错误为VBA运行时错误1004“应用程序定义或对象定义错误”列为A、B、C、,。。。当您在使用字符串时在字符串中使用时。如果它们是数字,则您需要做一些稍微不同的事情:

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

列是A、B、C、,。。。当您在使用字符串时在字符串中使用时。如果它们是数字,则您需要做一些稍微不同的事情:

With mySheet    
    .Range(.cells(1,columDelete), .cells(1,columDelete + deletedRowAmount)).EntireColumn.Delete
End With
一般来说,所说的就足够了,但这里有一种方法可以绕过它,让它变得更容易:

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)
的列。一般来说,所说的就足够了,但这里有一种方法可以绕过它,让它更简单:

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)
的列变量值是多少?申报什么?您得到的错误是什么?变量的值是多少?申报什么?您得到的错误是什么?变量是长的,因为这可能更容易理解,事实上vba需要将结果字符串解析回数字,这将增加时间,尽管只需几分之一秒。这就像把你的汽车直流输出换成交流电,把它换成直流电给你的手机充电。如果在一个循环中完成,它将在性能上产生差异。@ScottCraner-是的,可能会损失几分之一秒。这只是一个FWIW评论,OP可能愿意获得时间回报,如果它更容易理解和使用的话。@ScottCraner-我知道:)谢谢你的建议,但我已经有很多方法了,因此,创建新字符串并不方便:-)由于这可能更容易理解,vba需要将结果字符串解析回数字,这将增加时间,尽管只需几分之一秒。这就像把你的汽车直流输出换成交流电,把它换成直流电给你的手机充电。如果在一个循环中完成,它将在性能上产生差异。@ScottCraner-是的,可能会损失几分之一秒。这只是一个FWIW评论,OP可能愿意获得时间回报,如果它更容易理解和使用的话。@ScottCraner-我知道:)谢谢你的建议,但我已经有很多方法了,所以不方便做新的:-)谢谢,伙计。非常有用的一段代码。作为一个新手,很难理解VBA不合逻辑的语法。谢谢,伙计。非常有用的一段代码。作为新手,很难理解VBA不合逻辑的语法。