首页 > 解决方案 > 我有 4 个从表单中获得的值,我想将这些值粘贴到工作表中

问题描述

我有从用户表单获得的这四个值。

With Worksheets("Sheet1)

Worksheets("Sheet1").Range("A2").value = TextBox1.Value
Worksheets("Sheet1").Range("B2").value = ListBox1.Value
Worksheets("Sheet1").Range("C2").value = TextBox2.Value
Worksheets("Sheet1").Range("D2").value = ListBoxw.Value

End with

但是我想粘贴到下一个可用行中,而不是仅仅替换第 2 行中的数据。我怎样才能让它像那样动态?我需要计算已经存在的项目数量吗?因此,如果用户再次打开表单,之前输入的数据仍然存在,我们只需添加即可。另外,如何将当前日期作为 TextBox1 中的默认值?

标签: excelvba

解决方案


要将值粘贴到最后一个空行,请使用以下代码:

Sub PasteBelowTheLastRow()
  Dim lastEmptyRow As Long, sh As Worksheet
    Set sh = ActiveWorkbook.Sheets("Sheet1")
    lastEmptyRow = sh.Range("A:A").End(xlUp).Row + 1
     With sh
        .Range("A" & lastEmptyRow).value = TextBox1.value
        .Range("B" & lastEmptyRow).value = ListBox1.value
        .Range("C" & lastEmptyRow).value = TextBox2.value
        .Range("D" & lastEmptyRow).value = ListBox2.value
     End With
End Sub

为了自动设置 TextBox1 中的当前数据,您必须在UserForm_Initialize()事件中有下一个代码:

Private Sub UserForm_Initialize()
    Me.TextBox1.value = Date
End Sub

推荐阅读