1

を使用してフォーム値を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
4

2 に答える 2

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
于 2012-10-28T11:01:03.603 に答える
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
于 2012-10-28T11:44:30.927 に答える