使用VBA将表单值插入Excel电子表格

使用VBA将表单值插入Excel电子表格,vba,excel,Vba,Excel,我试图使用将表单值插入Excel电子表格,但我当前的代码正在将值插入同一行 由于我的表格从第3行开始,我想从那里开始,每次自动切换到下一行继续。行已设置,我不想插入新行,但要覆盖当前的“空”行 输入202行(可用行的最大数量)后,我希望电子表格返回一个错误消息对话框 我如何才能做到这一点 当前代码 Private Sub btnSubmit_Click() Dim ws As Worksheet Set ws = Worksheets("main") ' Co

我试图使用将表单值插入Excel电子表格,但我当前的代码正在将值插入同一行

  • 由于我的表格从第3行开始,我想从那里开始,每次自动切换到下一行继续。行已设置,我不想插入新行,但要覆盖当前的“空”行
  • 输入202行(可用行的最大数量)后,我希望电子表格返回一个错误消息对话框
  • 我如何才能做到这一点

    当前代码

        Private Sub btnSubmit_Click()
    
        Dim ws As Worksheet
        Set ws = Worksheets("main")
    
        ' Copy the data to the database
        ws.Rows("4:4").Insert Shift:=xlDown
        ws.Range("A3").Value = cbo_deptCode.Value
        MsgBox ("Booking request has been successfully made")
    
    End Sub
    

    请尝试一下,如果您有任何问题或顾虑,请告知我们:

    Sub Button1_Click()
        Dim ws As Worksheet
        Dim i As Long
        Set ws = Worksheets("main")
    
        ' Copy the data to the database
        i = Cells(Rows.Count, 1).End(xlUp).Row + 1 'Get last empty cell in column A
        If i > 202 Then
            MsgBox "Row 203"
            Exit Sub
        End If
    
        Range("A" & i).Value = cbo_deptCode.Value
        MsgBox ("Booking request has been successfully made")
    End Sub
    
    像这样的

    Private Sub btnSubmit_Click()
        Dim ws As Worksheet
        Dim rng1 As Range
        Set ws = Worksheets("main")
        Set rng1 = ws.Cells(Rows.Count, "a").End(xlUp)
        If rng1.Row > 202 Then
        MsgBox "202 Rows exceeded"  
        Else
        rng1.Offset(1, 0) = cbo_deptCode.Value
        End If
    End Sub
    

    谢谢,效果很好。但我遇到了一个问题,因为某些原因,它总是跳过第3行。即使它是表中当前的第一个空行,它也会跳过它并从第4行开始。你知道我如何解决这个问题吗?@methuselah上面的代码实际上没有使用
    ws
    。它在活动表上起作用。Sry,我不在。。。但我看到你得到了答案:)