代码在特定的工作簿中工作,但不在个人工作簿中
我有一个名为Test的工作簿,并用下面的代码编写了一个macros。 它工作得很好,但是当我把它添加到我的个人工作簿,代码给行Set ws = ThisWorkbook.Sheets("Sheet1")
。
下标超出范围。
我将代码从模块移动到个人工作簿Sheet 1,然后到ThisWorkbook。 没有帮助。 如果你能给我任何的build议,我可以尝试,将不胜感激。
Sub KeepOnlyAtSymbolRows() Dim ws As Worksheet Dim rng As Range Dim lastRow As Long Set ws = ThisWorkbook.Sheets("Sheet1") lastRow = ws.Range("E" & ws.Rows.Count).End(xlUp).Row Set rng = ws.Range("E1:E" & lastRow) ' filter and delete all but header row With rng .AutoFilter Field:=1, Criteria1:="<>*@*" .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete End With ' turn off the filters ws.AutoFilterMode = False End Sub
您是否特别希望参考当前打开的工作簿中的工作表“Sheet1”?
如果是这样,请使用下面的行
Set ws = ActiveWorkbook.Worksheets("Sheet1")
如果你只是想参考目前的表格,使用
Set ws = ActiveSheet
而如果你只想瞄准第一张纸,不pipe它的名字,
Set ws = ActiveWorkbook.Worksheets(1)
代码当前写入的方式似乎是指个人工作簿中的“Sheet1”,而不一定是当前用户处于活动状态的那个。