VBA / Excel:如何允许用户使用下拉选项添加新行

时间:2019-03-28 14:31:49

标签: excel vba

我创建了一个简单的请求表单,该表单将用户带到电子表格,要求他们填写名字,姓氏,用户的别名,取消激活权限和取消激活角色。该表格最多可用于9个不同的用户。我想再加上一列“同一用户的换行符?”可以使用答案为“是”和“否”的下拉菜单。并且,如果用户选择“是”,则新行将使用与前一行相同的名称和别名填充,而其下的其他行将向下移动一行。事情是我想要的:

1)创建新行,但是

2)仅复制该用户的名字(A列),姓氏(B列)和用户别名(C列)。 “访问停用”选项(列D)和“停用角色”选项将保持为空,以便请求者可以填写它们。并且在复制的新行中也不会填写“同一用户的新行”选项。

以下是我的想法的屏幕截图:enter image description here

我已经尝试过使用VBA的不同方法,但是由于我没有那么丰富的经验,因此我无法提出任何可以满足需要的方法。我认为它应该是基于动态范围的,因此可以在整个表格中使用。你能请教吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim LastRow As Long

    With ThisWorkbook.Worksheets("Sheet1")

        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

        If Not Intersect(Target, .Range("F7:F" & LastRow)) Is Nothing And Target.Value = "Yes" Then
            Application.EnableEvents = False
                .Rows(Target.Row + 1).EntireRow.Insert
                .Range("A" & Target.Row & ":C" & Target.Row).Copy .Range("A" & Target.Row + 1 & ":C" & Target.Row + 1)
            Application.EnableEvents = True
        End If

    End With

End Sub