我有一个有关Q6:V100范围内的员工的数据。该数据不在表中,并且该数据由6列(职位,职务,薪水等)组成,并且基于“当前受雇”的第一列,我要删除不再雇用该雇员的行(= “”)。如果使用第一列,则显示“ O”;如果否,则显示“”(仅空白)。这是我尝试过的代码。但它显示错误消息
“范围类的自动筛选方法失败”
我不知道出了什么问题...如果有人可以帮助,将不胜感激!
Sub Delete_Rows_Based_On_Value()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Trainings")
ws.Activate
'Clear any existing filters
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
'1. Apply Filter
ws.Range("Q6:V100").AutoFilter Field:=1, Criteria1:=""
'2. Delete Rows
Application.DisplayAlerts = False
ws.Range("Q7:V100").SpecialCells(xlCellTypeVisible).Delete
Application.DisplayAlerts = True
'3. Clear Filter
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
End Sub
答案 0 :(得分:1)
我建议使用更可靠的系统,在Q栏中注明: 1 =就业, 0 =未就业
// vanilla websocket
const vanillaWS = new WebSocket('wss://ws.kraken.com');
vanillaWS.onopen = () => {
console.log('vanilla websocket opened');
}
vanillaWS.onmessage = (message) => {
console.log(message.data);
}
// socket.io websocket
const ioSocket = io('wss://ws.kraken.com');
ioSocket.on('connect', () => {
console.log('socket.io socket opened');
});
ioSocket.on('message', (message) => {
console.log(message.data);
});
如果您不适应新系统,请更改If语句以匹配当前系统:
Sub Delete_Rows_Based_On_Value()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Trainings")
ws.Activate
Dim i As Integer
Dim n as Integer
n = ws.Range("Q6").CurrentRegion.Rows.Count
For i = n + 5 To 6 Step -1
If ws.Cells(i, 17).Value = 0 Then
ws.Rows(i).Delete
End If
Next i