首页 > 解决方案 > Excel 列表框未正确填充

问题描述

我一直在学习教程并玩开发全自动用户数据输入表单。

我关注 PSB 的视频:

https://www.youtube.com/watch?v=P53T6oxgUVA&ab_channel=TheDataLabs

在下载了他的文件并逐步完成代码之后,我仍然在 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 语句是不正确的,尽管遵循教程并正确复制代码以满足我的特定需求。

任何建议将不胜感激。

标签: excelvbalistbox

解决方案


可以找到列中最后一个带有文本的单元格

Range("B" & 1).End(xlDown).Offset(1, 0).Select

Offset(1, 0) 选择下面的单元格,以便您将数据复制到它。

要选择工作表,请使用:

Worksheets("Room Access 2").Select

不需要下划线。


推荐阅读