Excel列表框未正确填充

Excel列表框未正确填充,excel,vba,listbox,Excel,Vba,Listbox,我一直在遵循一个教程,并在玩开发完全自动化的用户数据输入表单 我跟随PSB的视频: 在下载了他的文件并一步一步地浏览了代码之后,我仍然在Sub Clear()上ELSE语句的特定部分上得到一个黄色高亮显示?此外,我的列表框不能正确更新,它会用保存的下一个条目替换上一个条目 请查看下面的代码 Sub Clear() Dim iRow As Long iRow = [Counta(Room Access 2!A:A)] '''Identify Last Row as per tu

我一直在遵循一个教程,并在玩开发完全自动化的用户数据输入表单

我跟随PSB的视频:

在下载了他的文件并一步一步地浏览了代码之后,我仍然在Sub Clear()上ELSE语句的特定部分上得到一个黄色高亮显示?此外,我的列表框不能正确更新,它会用保存的下一个条目替换上一个条目

请查看下面的代码

Sub Clear()

    Dim iRow As Long
    iRow = [Counta(Room Access 2!A:A)] '''Identify Last Row as per tutorial''

    With Frm_Room_Access_2

    .Surname_Txtbx.Value = ""
    .Rank_Cmbobx.Value = ""
    .Section_Txtbx.Value = ""
    .Extention_Txtbx.Value = ""
    .Service_Number_Txtbx.Value = ""
    .Due_Time_Txtbx.Value = ""
    .OpBtn_Time_as_Now.Value = False
    
    .SerialNo_Txtbx.Value = ""
    
    
    If iRow > 1 Then
    .List_Database.RowSource = "Room Access 2!A2:G" & iRow
    Else
    .List_Database.RowSource = "Room Access 2!A2:G" '''' Keeps Highlighting Error ''''
    
    End If
    
    End With

    End Sub



Sub Submit()

     Dim sh As Worksheet
     Dim iRow As Long

     Set sh = ThisWorkbook.Sheets("Room Access 2")

     If Frm_Room_Access_2.SerialNo_Txtbx.Value = "" Then
        
     iRow = [Counta(Room Access 2!A:A)] + 1
     Else
     iRow = Frm_Room_Access_2.SerialNo_Txtbx.Value
     End If

     With sh

     .Cells(iRow, 1) = iRow - 1
     .Cells(iRow, 2) = Frm_Room_Access_2.Surname_Txtbx.Value
     .Cells(iRow, 3) = Frm_Room_Access_2.Service_Number_Txtbx.Value
     .Cells(iRow, 4) = Frm_Room_Access_2.Rank_Cmbobx.Value
     .Cells(iRow, 5) = Frm_Room_Access_2.Section_Txtbx.Value
     .Cells(iRow, 6) = Frm_Room_Access_2.Extention_Txtbx.Value
     .Cells(iRow, 7) = IIf(Frm_Room_Access_2.OpBtn_Time_as_Now.Value = True And Frm_Room_Access_2.Due_Time_Txtbx.Value = "", Now(), Frm_Room_Access_2.Due_Time_Txtbx.Value)


     End With

     End Sub
我想解决的问题是,为什么我的列表框没有在第一个条目下添加另一个条目,它只是在保存时替换第一个条目。我需要另一种方法吗

第二,为什么代码会突出显示Else语句不正确,尽管遵循了教程并根据我的特殊需要正确复制了代码


如果您有任何建议,我们将不胜感激。

可以使用

Range("B" & 1).End(xlDown).Offset(1, 0).Select
偏移量(1,0)选择下面的单元格,以便将数据复制到其中

要选择工作表,请使用:

Worksheets("Room Access 2").Select

不需要下划线。

“Room Access 2!A2:G”不是一个有效的范围-它需要是G什么。可能
“Room Access 2!A2:G2”
不知道该源有多可靠,因为COUNTA不是找到最后一个空行的最佳方法。谢谢,即使我尝试使用“G2”仍然标记和错误
“'Room Access 2'!A2:G2”