2012-10-28 44 views
1

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

  1. 正如我的表从行3开始,我想从那里开始,并通过每一次并自动转移到下一行继续。这些行已经设置好了,我不想插入新的行,而是覆盖当前的“空行”。
  2. 当输入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 

回答

1

像这样

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 
1

请试试这个,让我们知道,如果您有任何问题或疑虑:

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 
+0

由于它的作品真的好。但由于某种原因,我遇到了总是跳过第3行的问题。尽管它是表格中当前第一个空行,但它会跳过它,并从第4行开始。任何想法如何解决此问题? – methuselah

+0

@methuselah上面的代码实际上并不使用'ws'。它在ActiveSheet上工作。 – brettdj

+0

Sry,我离开了......但我看到你有你的答案:) – salih0vicX

相关问题