Excel VBA中的动态范围

时间:2017-12-06 12:47:09

标签: vba excel-vba excel

我有一个带有一些Checkbox和TextField的UserForm,当我按下“Insert”按钮时,输入被粘贴在第1行A-7列。

我有以下问题:

按下按钮后,我想再次填写UserForm并将数据粘贴到第2行,然后是3,4,5,6等等。有人能告诉我如何动态跳转到下一行并插入数据吗?

我的复选框的代码段如下:

If UserForm1.eig_hand.Value = True Then
    Range("E3").Value = "Yes"
End If

这个片段将在我按下“插入按钮”后执行,这将非常有用,当我可以关闭并重新打开Excel文件并继续我关闭文件的行。我知道我在代码片段中有一个静态表达式,但我在VBA中是一个完全初学者

编辑:

我找到了解决问题的方法。 我在单元格中有一个计数器变量,例如单元格(5,1),我的代码如下所示:

Dim counter_var As Integer
counter_var = Cells(5, 1)
If UserForm1.eig_hand.Value = True Then
Cells(counter_var, 4).Value = "Ja"
End If
If UserForm1.eig_kmu.Value = True Then
Cells(counter_var, 5).Value = "Ja"
End If

在我的代码结尾处,我设置了counter_var + = 1。 所有回复的Ty:)

2 个答案:

答案 0 :(得分:1)

只是:

Range("E" & Rows.Count).End(xlUp).Offset(1).Value= "Yes"

但我和你的代码有一个重大缺点 - 当你在工作簿和工作表之间切换时,它们可能会产生意想不到的结果。但它是你的问题的答案。

答案 1 :(得分:0)

类似的东西:

Sub ButtonCode()
    Dim E2 As Range, n As Long

    Set E2 = Range("E2")

    If E2 = "" Then
        E2 = "yes"
    Else
        n = Cells(Rows.Count, "E").End(xlUp).Row + 1
        Range("E2:E" & n) = "yes"
    End If
End Sub