【问题标题】:Object Item does not support this property or method对象项不支持此属性或方法
【发布时间】:2016-06-19 00:35:12
【问题描述】:

所以,我是 VBA 的初学者,但我正在尝试创建一种简单的方法来向在 Excel 电子表格中找到信息的一群人发送提醒消息。它应该循环,向列中找到的地址发送电子邮件,直到出现一个空单元格。

我在以 * 开头的行上不断收到错误 Object does not support this property or method。我花了最后一个小时试图弄清楚为什么会出现这个错误,因为 Workbooks 有属性 SheetsCells 返回一个值。

Sub Send_Reminder_Email()

    Dim objMsg As MailItem
    Set objMsg = Application.CreateItem(olMailItem)

    Dim xlApp As Object, wb As Object
    Dim row As Integer

    Set xlApp = CreateObject("Excel.Application")
    Set wb = xlApp.Workbooks.Open("C:\User\Me\...file.xls")
    row = 2

    *Do While Not IsEmpty(wb.Sheets.Cells(row, 2).Value)
        objMsg.To = wb.Sheets.Cells(row, 6)
        objMsg.BCC = "potapeno@foo.net"
        objMsg.Subject = "Email"
        objMsg.Body = "Information"
        objMsg.Send
        row = row + 1
    Loop

    Set objMsg = Nothing
    Set wb = Nothing
    Set xlApp = Nothing
    row = 0

End Sub

我也尝试过“激活”工作簿,但未能解决我的问题。我不知道什么对象不支持什么方法。

【问题讨论】:

  • wb.Sheets 是一个集合,没有 .Cells 属性。指定工作表 e. G。 wb.Sheets("Sheet1").Cells(row, 2).Value
  • 请写下答案,以便我可以称这个问题为已回答。不过谢谢,我发誓我试过了,但没用,但现在可以了……

标签: excel vba outlook compiler-errors


【解决方案1】:

wb.Sheets 是一个集合,没有 .Cells 属性。您可以使用对象浏览器在 VBA 项目中按 F2 浏览方法和属性。输入班级名称并按搜索按钮:

要获取某个 Worksheet 对象,您必须指定工作表集合的项目 e。 G。按工作表名称:

Do While Not IsEmpty(wb.Sheets.Item("Sheets1").Cells(row, 2).Value)

.Item() 是默认属性可能不是很明显,但确实如此,因此您可以简化形式来调用它:

Do While Not IsEmpty(wb.Sheets("Sheets1").Cells(row, 2).Value)

或按工作表索引:

Do While Not IsEmpty(wb.Sheets(1).Cells(row, 2).Value)

【讨论】:

    猜你喜欢
    • 2013-10-05
    • 1970-01-01
    • 2015-07-02
    • 2019-04-09
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多