也许你很久以前就解决了这个问题,否则我会将我的代码粘贴到技能代理中:
Option Explicit
Dim cvsApp As New ACSUP.cvsApplication
Dim cvsConn As New ACSCN.cvsConnection
Dim cvsSrv As New ACSUPSRV.cvsServer
Dim Rep As New ACSREP.cvsReport
Sub SkillAgentes()
Application.ScreenUpdating = False
Set cvsSrv = cvsApp.Servers(1)
Dim LastRow As Long, LastCol As Long, ws As Worksheet, wsData As Worksheet, F As Integer, C As Integer, _
i As Integer, S As Integer, Skill As String, Prtr As Integer, SetArr() As Variant, Agentes As String, _
Cantidad As Integer, ACD As Integer, wsA As Worksheet, wsS As Worksheet, AgMngObj As Object
Set wsData = ThisWorkbook.Sheets("Trasvases")
Set ws = ThisWorkbook.Sheets("Cambios Skill")
Set wsA = ThisWorkbook.Sheets("Agentes")
Set wsS = ThisWorkbook.Sheets("Skills")
Set AgMngObj = cvsSrv.AgentMgmt
S = 1
LastRow = ws.Range("F" & ws.Rows.Count).End(xlUp).Row
For i = 2 To LastRow
LastCol = ws.Cells(i, 8).End(xlToRight).Column
Agentes = ws.Cells(i, ws.Cells.Find("login").Column)
Cantidad = ws.Cells(i, 3)
If ws.Cells(i, 2) = "SUR" Then ACD = 1
If ws.Cells(i, 2) = "NORTE" Then ACD = 2
ReDim SetArr(Cantidad, 4)
For C = 8 To LastCol Step 2
On Error Resume Next
Skill = ws.Cells(i, C).Value
Prtr = ws.Cells(i, C + 1).Value
SetArr(S, 1) = Skill
SetArr(S, 2) = Prtr
SetArr(S, 3) = 0
SetArr(S, 4) = 0
S = S + 1
Next C
AgMngObj.AcdStartUp -1, "", cvsSrv.ServerKey, -1
AgMngObj.OleAgentSetSkill_R16_1 ACD, Agentes, Prtr, 0, 0, 0, Cantidad, SetArr, ""
Dim Tiempo As String: Tiempo = Format(Now, "hh:mm:ss")
ws.Cells(i, 50).Value = Tiempo
LastRow = wsData.Range("A1000").End(xlUp).Row
Dim x As Integer
For x = 1 To LastRow
If wsData.Cells(x, 5) = wsA.Cells.Find(Agentes).Offset(0, 1) Then
If wsData.Cells(x, 7) = 0 Then
wsData.Cells(x, 7).Value = Tiempo
GoTo Cambiado
End If
End If
Next
F = wsData.Range("A1000").End(xlUp).Row + 1
wsData.Cells(F, 1).Value = Format(Date, "dd/mm/yyyy")
If Format(Date, "dd") < 13 Then wsData.Cells(F, 1).Value = Format(Date, "mm/dd/yyyy")
wsData.Cells(F, 2).Value = ws.Cells(19, 1)
wsData.Cells(F, 3).Value = ws.Cells(21, 1)
wsData.Cells(F, 4).Value = wsA.Cells.Find(Agentes, LookAt:=xlWhole).Offset(0, 2).Value
wsData.Cells(F, 5).Value = wsA.Cells.Find(Agentes, LookAt:=xlWhole).Offset(0, 1)
wsData.Cells(F, 6).Value = Tiempo
wsData.Cells(F, 8).FormulaR1C1 = "=IF(RC[-1]="""","""",RC[-1]-RC[-2])"
wsData.Cells(F, 9).FormulaR1C1 = ws.Cells(i, ws.Cells.Find("Modo Origen").Column)
wsData.Cells(F, 10).Value = _
wsS.Cells(wsS.Cells.Find(ws.Cells(i, ws.Cells.Find("Modo a conectar:").Column)).Row, _
wsS.Cells.Find("Destino").Column)
wsData.Cells(F, 11).Value = ws.Cells(i, ws.Cells.Find("Motivo Trasvase").Column).Value
Cambiado:
S = 1
Next i
它确实有太多的代码,但我相信你可以得到你需要的东西。使用此代码,您可以一次更改任意数量的代理技能。这就是您输入登录名和技能的表格应该是这样的。请注意,您必须至少输入 ACD、要输入的技能数量、登录名、技能及其优先级。

大部分内容是记录代理的来源、去向以及花费在该更改上的时间。
希望它对我的英语有所帮助和抱歉。