我在寫一個VBA問題,它發現被認爲是無效的行,將行號保存在一個名爲invalidRowsToDelete
的數組中,並通過構建一個刪除選定的行無效行的字符串(例如1:1, 4:4, 7:7
)。選擇一個範圍的單元格拋出運行時錯誤'1004'
但是,它有時會起作用,有時不起作用,但會對大量無效行失敗。
返回的錯誤是:「運行時錯誤‘1004’:對象的‘_global’失敗的方法範圍」上線Set rng = Range(invalidRowsToDelete)
Public rng As Range
__________________________
Dim invalidRowsToDelete As String
Dim i As Long
For i = LBound(InvalidFilesArr) To UBound(InvalidFilesArr)
If InvalidFilesArr(i) <> "" Then
invalidRowsToDelete = invalidRowsToDelete & InvalidFilesArr(i) & ":" & InvalidFilesArr(i) & ","
Else
Exit For
End If
Next i
'Build range statement and delete trailing comma from rowsToDeleteStatement
invalidRowsToDelete = "" & Left(invalidRowsToDelete, Len(invalidRowsToDelete) - 1) & ""
Debug.Print invalidRowsToDelete
Worksheets("Sheet1").Activate
Set rng = Range(invalidRowsToDelete) #### Problem line
rng.Select
rng.Delete
這讓我相當長一段時間,現在我無法找出導致此錯誤的原因。
謝謝
我的猜測,雖然我找不到任何支持它,但是你的字符串變得太長了,並且溢出了'range'方法。 – Degustaf 2014-12-09 13:50:14
極限似乎是255. – 2014-12-09 14:14:04