Excel 获取VBScript错误

Excel 获取VBScript错误,excel,vbscript,vba,Excel,Vbscript,Vba,以下VBScript代码在第行显示错误“ 正确 错误为:“预期语句结束” 代码 子数据从右移到左(Ob6) Dim lCol、COLU FIRST、startCol Dim NUM_任务数:NUM_任务数=36 COL_FIRST=objExcel1.Application.WorksheetFunction.Match(“父业务流程ID”,ob6.Rows(1),0) COL_FIRST=COL_FIRST+1 '设置wst=Ob6.ActiveSheet 使用ob6.ActiveSheet

以下VBScript代码在第行显示错误“

正确

错误为:“预期语句结束”

代码

子数据从右移到左(Ob6)
Dim lCol、COLU FIRST、startCol
Dim NUM_任务数:NUM_任务数=36
COL_FIRST=objExcel1.Application.WorksheetFunction.Match(“父业务流程ID”,ob6.Rows(1),0)
COL_FIRST=COL_FIRST+1
'设置wst=Ob6.ActiveSheet
使用ob6.ActiveSheet
对于lRow=2到.UsedRange.Rows.Count
lTask=1

当lTask您的
Shift:=xlToLeft
尝试使用命名参数时执行此操作。这在VBScript中是不可能的。您必须定义xlToLeft(Const),并确保在正确的位置传递
xlToLeft
(使用VBA文档检查要删除的参数的数量和顺序)

p.S.


如果你在谷歌上搜索“vbscript delete xltoleft”,将会对你有所帮助。

这里有人能帮我吗?@tukallakshit-请做一些研究(提示:使用vbscript和括号中的参数调用Subs和函数)我会的,但如何将错误所在的行格式化为vbscript?请帮助我xlToLeft的值为-4159,我刚刚得到。现在如何更改该行,请告诉我?
    .Range(.Cells(lRow, lCol), .Cells(lRow, lCol + 3)).Delete Shift:=xlToLeft
    .Range(.Cells(lRow, lCol), .Cells(lRow, lCol + 3)).Delete(-4159)
  Sub DataShiftFromRightToLeft(Ob6)

   Dim lCol,COL_FIRST,startCol
   Dim NUM_TASKS:NUM_TASKS=36

COL_FIRST = objExcel1.Application.WorksheetFunction.Match("Parent Business Process ID", ob6.Rows(1), 0)
COL_FIRST=COL_FIRST+1

'Set wst = Ob6.ActiveSheet

With ob6.ActiveSheet

    For lRow = 2 To .UsedRange.Rows.Count
        lTask = 1
        Do While lTask <= NUM_TASKS
            lCol = COL_FIRST + (lTask - 1) * 4
            If Len(.Cells(lRow, lCol).Value) = 0 And _
               Len(.Cells(lRow, lCol + 1).Value) = 0 And _
               Len(.Cells(lRow, lCol + 2).Value) = 0 And _
               Len(.Cells(lRow, lCol + 3).Value) = 0 Then
                ' make sure there is something to the right to shift over
                If .Cells(lRow, lCol).End(xlToRight).Column < .Columns.Count Then
                    ' delete the empty cells and shift everything left``
                    .Range(.Cells(lRow, lCol), .Cells(lRow, lCol + 3)).Delete Shift:=xlToLeft
                Else
                    ' force the loop to the next row
                    lTask = NUM_TASKS + 1
                End If
            Else
                lTask = lTask + 1
            End If
        Loop
    Next lRow
End With

End Sub