这有效
mySheet.Rows(CStr(activeRow) & ":" & CStr(activeRow + deletedRowAmount)).Delete
这不起作用
mySheet.Columns(CStr(columDelete) & ":" & CStr(columDelete + deletedRowAmount)).Delete
我在这里缺少什么?
错误 VBA运行时错误1004“应用程序定义或对象定义错误”
答案 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)
的列。