如何根据另一个单元格值自动插入行值


0

首先,请查看此excel工作表: enter image description here

月份表包含全年数据。如果我通过键入或从下拉菜单中选择(例如“已选择”)从表格中选择任何月份,那么在某些行之后只会出现那些行。例如,我希望所选择的行将出现在第14行及之后(即行将不会出现在第15行之前)。怎么做到这一点?

对于您的类型信息,所选行数可能会有所不同。例如,在上表中选择了两行(4月和9月)。但它可能是3月,4月和9月入选。因此,我无法指定将出现所选行的单元格范围。此外,第17行将有一些文本。因此,必须在第14行之后动态插入所选行。

知道怎么做到这一点?


从技术上讲,它也可以用宏来完成。您是否希望“出现”行按月或按选择顺序排列?
Christofer Weber

按顺序选择
Abdullah Mamun-Ur- Rashid

Answers:


0

我可能会使用数据透视表。 B,C&amp ;;月份将进入COLUMNS。在VALUES中的D(这应该基本上使表看起来或多或少与你的相同)。然后需要将选择参数放入FILTERS以仅显示您想要的内容。

不好的是,您希望每个团队都要显示更改,您需要刷新数据透视表(RMB和刷新或通过分析;或者您可以使用宏来定期为您执行此操作)。


0

第1步 - 列表

首先,您可以使用下拉列表添加“已选择”部分。
E1 选中,转到 数据 选项卡并选择 数据验证 。选择 名单 和写 资源
现在拖 E1 向下 E12 获取所有单元格的列表。

第2步 - 守则

添加行
跟踪这些细胞的变化 Worksheet_Change 子工作很棒。 右键单击“Sheet1”( 或同等学历 )并选择 显示代码

要跟踪和复制选定的行,我们可以执行以下操作:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer, r As Integer
On Error GoTo EndM
If Target.Value = "Selected" And Target.Column = 5 And Target.Row < 13 Then
    For r = 15 To 30
        If Cells(r, 1).Value = "" Then
            Range("A" & r & ":D" & r).Cells.Value = Range("A" & Target.Row & ":D" & Target.Row).Cells.Value
            i = 1
        End If
        If i > 0 Then GoTo EndM
    Next r
End If
EndM:
End Sub

这会查找工作表中的更改。如果改变任何细胞 E1E12 被更改为“选择”,然后它复制列 AD 同一行的行,从第15行开始的第一个空行。
注意
这并不能阻止你两次选择相同的条目,即获得两行1月。它也设置为第30行的限制。在第30行之后它不会添加更多条目可以通过更改值来更改 30For r = 15 To 30

删除行
当我们通过添加删除“Selected”值时,我们可以使用基本相同的方法再次删除行

If Target.Column = 5 And Target.Row < 13 And Target.Value = "" Then
    For r = 15 To 30
        If Cells(r, 1).Value = Cells(Target.Row, 1) Then
            Range("A" & r & ":D" & r).Cells.Delete
        End If
    Next r
End If

之间 End IfEndM: 在前面的例子中。

每次尝试删除多个单元格时,工作表都不需要错误处理程序。
注意
如果一次删除多个单元格,则不会运行,如果同一个月连续出现两次,则不会删除每一行。

您当然可以添加或更改功能,例如通过添加以下内容来限制添加多个条目:

            ElseIf Cells(r, 1).Value = Cells(.Row, 1).Value Then
            MsgBox ("Multiple entries are not allowed!")
            GoTo EndM

之间 i = 1End If 在添加部分。
祝好运!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.