Excel VBA 宏开始抛出“对象‘范围’的方法‘值’失败”,尽管没有对代码进行任何更改

问题描述 投票:0回答:1

我有一个带有文本字段的用户表单,单击表单上的“保存”按钮后,可以将字段的值保存到工作表中的新行。这个过程是有效的,但我今天打开表单,现在它抛出以下错误消息。

当我单击“调试”时,它会将我带到以下代码行。

当我将鼠标悬停在语句上时,它已正确捕获该字段的值。

我不明白为什么它会在工作后随机开始抛出此错误。有人有想法吗?

我已经花了几个小时试图解决这个问题。如果有人想看一下整个工作簿和 Visual Basic 代码,那么我非常乐意将其发送给您。

请帮忙!

excel vba runtime-error userform
1个回答
0
投票

您已将范围转换为表格,并且正在尝试向该表格添加数据。首先使用

ListRows.Add
添加新行,然后添加值。

这就是你正在尝试的吗?

Private Sub WriteDataToSheet()
    Dim newRow As Long
    Dim status As String
    
    status = GetFeaturedStatus
    
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Hiring Events Listing")
    
    Dim Tbl As ListObject
    Set Tbl = ws.ListObjects("Table3")
    
    With ws
        newRow = .Cells(.Rows.Count, 1).End(xlUp).row
        
        Tbl.ListRows.Add Position:=newRow - 1
    
        .Cells(newRow, 1).Value = txtEventName.Value
        .Cells(newRow, 2).Value = txtEventDate.Value
        .Cells(newRow, 3).Value = txtLocationNme.Value
        .Cells(newRow, 4).Value = txtStreetAddress.Value
        .Cells(newRow, 5).Value = txtCity.Value
        .Cells(newRow, 6).Value = txtState.Value
        .Cells(newRow, 7).Value = txtZip.Value
        .Cells(newRow, 8).Value = txtStart.Value
        .Cells(newRow, 9).Value = txtEnd.Value
        .Cells(newRow, 10).Value = txtPositionsHiring.Value
        .Cells(newRow, 11).Value = txtLocationsHiring.Value
        .Cells(newRow, 12).Value = status
    End With
End Sub

您可能想查看在 Microsoft Excel VBA 中使用表格

© www.soinside.com 2019 - 2024. All rights reserved.