我有以下代码旨在删除第3列中包含的字符串的前两个字母不是“SW”的行,用于工作簿的工作单2和3:
Sub Summrize()
Dim n As Integer
Dim i As Integer
Dim identif As String
Dim idftl As String
Dim ws As Worksheet
For n = 2 To 3
Set ws = ThisWorkbook.Worksheets(i)
With ws
For i = 200 To 1 Step -1
identif = .Cells(i, 3).Value
idftl = Left(identif, 2)
If Not idftl = "SW" Then
.Rows(i & ":" & i).Delete
End If
Next i
End With
Next n
End Sub
它在第二个循环的开头停止(这是For i = 200 To 1 Step -1
)并且我得到错误:
错误9:超出间隔的子索引
我尝试过很多东西,但无法达到错误。
答案 0 :(得分:2)
我相信你不小心使用了i代替了以下行中的n:
Name Vol Tot Start Date End Date
xxxx 433 42 20/10/2017 01/09/2018
我此时尚未宣布。因此,它默认为0,并且您没有工作表编号0.
答案 1 :(得分:1)
它可以帮助您设置书签并观看“查看/本地”窗口,也可以悬停变量以查看当前值。
答案 2 :(得分:0)
应该是: 设置ws = ThisWorkbook.Worksheets(n)
代替: 设置ws = ThisWorkbook.Worksheets(i)