VBA - 下标超出范围

use*_*150 3 excel vba excel-vba

我有这个脚本我用于库存清单.对于每种产品,都有计数和重新订购限制.如果计数小于重新订购限额,我会发送一封电子邮件,要求订购更多.

我试过运行脚本,它给了我一个编译错误. Subscript out of range - Run-time error9

这是我的代码.

  Sub sendEmail()
'
' sendEmail Macro
'

'
    Dim olApp As Object, olMail As Object
    Dim MyData
    Dim i As Long

    Set olApp = GetObject(, "Outlook.Application")


    ' ~~> I have taken 70 rows
    MyData = ThisWorkbook.Sheets("HDD").Range("D2:E70")

    For i = LBound(MyData) To UBound(MyData) - 1
        If MyData(i, 5) > MyData(i, 4) Then
            Set olMail = olApp.CreateItem(0)


            Debug.Print MyData(i, 2)

            With olMail
                .To = "myemail@example.com"
                .Subject = "Sent from Excel"
                .Body = MyData(i, 2)
                .Send
            End With
        End If
    Next i
End Sub
Run Code Online (Sandbox Code Playgroud)

我的工作表看起来像这样:

No - Product - Description - Count - Reorder 
---------------------------------------------
1    Pen          -            4        5
Run Code Online (Sandbox Code Playgroud)

RBa*_*ung 6

您的数组的源范围只有两列,但您在数组中引用了硬编码的列值4和5.