Excel中的VBA在列之间移动值

苹果电脑

我有填充两列的excel文件。首先,包括数字,第二个字母。我想用以下条件用字母填充第三列:如果相同的数字在第二列的任何单元格中都有“ A”,则在第三列中将该数字的每个单元格填充字母A,在第三列中ELSEIF“ B”然后在第三列中填充B。 。优先级A> B> C> D

瓦西里·伊沃扎(Vasily Ivoyzha)

用这个

Sub test()
    Dim Dic As Object: Set Dic = CreateObject("Scripting.Dictionary")
    Dim Cl As Range, i&
    i = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
    For Each Cl In ActiveSheet.Range("A1:A" & i)
        If Not Dic.exists(Cl.Value & Cl.Offset(, 1).Value) Then
            Dic.Add (Cl.Value & Cl.Offset(, 1).Value), Cl.Row
        End If
    Next
    For Each Cl In ActiveSheet.Range("A1:A" & i)
        If Dic.exists(Cl.Value & "A") Then
            Cl.Offset(, 2).Value = "A"
        ElseIf Dic.exists(Cl.Value & "B") Then
            Cl.Offset(, 2).Value = "B"
        ElseIf Dic.exists(Cl.Value & "C") Then
            Cl.Offset(, 2).Value = "C"
        ElseIf Dic.exists(Cl.Value & "D") Then
            Cl.Offset(, 2).Value = "D"
        End If
    Next
End Sub

输出结果是

在此处输入图片说明

根据新要求进行了更新

用这个

Sub test()
    Dim Dic As Object: Set Dic = CreateObject("Scripting.Dictionary")
    Dim Cl As Range, i&, key As Variant
    i = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
    For Each Cl In ActiveSheet.Range("A1:A" & i)
        If Not Dic.exists(Cl.Value & Cl.Offset(, 1).Value) Then
            Dic.Add (Cl.Value & Cl.Offset(, 1).Value), Cl.Row
        End If
    Next
    For Each Cl In ActiveSheet.Range("A1:A" & i)
        For Each key In Dic
            If UCase(key) Like Cl.Value & "*A*" Then
                Cl.Offset(, 2).Value = Mid(key, 2, 100)
                Exit For
            End If
        Next
        If Cl.Offset(, 2).Value = Empty Then
            For Each key In Dic
                If UCase(key) Like Cl.Value & "*B*" Then
                    Cl.Offset(, 2).Value = Mid(key, 2, 100)
                    Exit For
                End If
            Next
        End If
        If Cl.Offset(, 2).Value = Empty Then
            For Each key In Dic
                If UCase(key) Like Cl.Value & "*C*" Then
                    Cl.Offset(, 2).Value = Mid(key, 2, 100)
                    Exit For
                End If
            Next
        End If
        If Cl.Offset(, 2).Value = Empty Then
            For Each key In Dic
                If UCase(key) Like Cl.Value & "*D*" Then
                    Cl.Offset(, 2).Value = Mid(key, 2, 100)
                    Exit For
                End If
            Next
        End If
    Next
End Sub

输出结果

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Excel:对相邻列中某些值之间的数字行求和

来自分类Dev

在Excel中匹配并移动列

来自分类Dev

如何从Excel VBA的列中获取唯一值列表?

来自分类Dev

Vba比较Excel中的两列并获取相应的值

来自分类Dev

VBA向下看Excel中的列并找到值?

来自分类Dev

如何替换 Excel VBA 列中的特定值?

来自分类Dev

如何从 Excel VBA 移动到我的 Access 数据库中的下一列

来自分类Dev

使用 Excel 的 vba 在公式中向左移动一列

来自分类Dev

如何在同一列的单元格之间比较文本值并在Excel VBA中给出特定的ID(数字)

来自分类Dev

计算值之间的列中的单元格,直到在Excel中达到特定值

来自分类Dev

Excel-在另一列中的日期之间获取列中的唯一值

来自分类Dev

通过VBA在excel中移动单元格值

来自分类Dev

Excel VBA:序列号+指定的开始将递增到结束值+向下移动列数据

来自分类Dev

在 Excel VBA 中的按钮之间传输变量

来自分类Dev

在2对2列之间查找缺失值或Excel中的其他值

来自分类Dev

Excel VBA - 根据列 B 中的条件计算列 A 中的唯一/不同值

来自分类Dev

使用Excel VBA计算列中``0''和``1''之间的转换

来自分类Dev

使用Excel VBA如果a列中的值不在b列中,则将值添加到c列

来自分类Dev

Excel VBA - 如何将列复制或移动到单行?

来自分类Dev

Excel VBA 在 2 列或更多列的组合中查找唯一值

来自分类Dev

如何在Ramda中的对象的属性之间移动值?

来自分类Dev

自动筛选之间有换行符的值(Excel / VBA)

来自分类Dev

如果单元格包含VBA / Excel中的特定值,如何从范围中删除列

来自分类Dev

在Excel 2010中,使用宏和VBA比较列中的数据并突出显示值(如果不同)

来自分类Dev

Excel VBA - 将输入框中的值添加到列中的列表

来自分类Dev

当用户在Excel(VBA)中向右滚动时移动形状

来自分类Dev

在可排序的jQueryUI中的表之间移动包括th的列

来自分类Dev

将Excel中的值导入VBA

来自分类Dev

列表中的 VBA 或 Excel 最大值

Related 相关文章

  1. 1

    Excel:对相邻列中某些值之间的数字行求和

  2. 2

    在Excel中匹配并移动列

  3. 3

    如何从Excel VBA的列中获取唯一值列表?

  4. 4

    Vba比较Excel中的两列并获取相应的值

  5. 5

    VBA向下看Excel中的列并找到值?

  6. 6

    如何替换 Excel VBA 列中的特定值?

  7. 7

    如何从 Excel VBA 移动到我的 Access 数据库中的下一列

  8. 8

    使用 Excel 的 vba 在公式中向左移动一列

  9. 9

    如何在同一列的单元格之间比较文本值并在Excel VBA中给出特定的ID(数字)

  10. 10

    计算值之间的列中的单元格,直到在Excel中达到特定值

  11. 11

    Excel-在另一列中的日期之间获取列中的唯一值

  12. 12

    通过VBA在excel中移动单元格值

  13. 13

    Excel VBA:序列号+指定的开始将递增到结束值+向下移动列数据

  14. 14

    在 Excel VBA 中的按钮之间传输变量

  15. 15

    在2对2列之间查找缺失值或Excel中的其他值

  16. 16

    Excel VBA - 根据列 B 中的条件计算列 A 中的唯一/不同值

  17. 17

    使用Excel VBA计算列中``0''和``1''之间的转换

  18. 18

    使用Excel VBA如果a列中的值不在b列中,则将值添加到c列

  19. 19

    Excel VBA - 如何将列复制或移动到单行?

  20. 20

    Excel VBA 在 2 列或更多列的组合中查找唯一值

  21. 21

    如何在Ramda中的对象的属性之间移动值?

  22. 22

    自动筛选之间有换行符的值(Excel / VBA)

  23. 23

    如果单元格包含VBA / Excel中的特定值,如何从范围中删除列

  24. 24

    在Excel 2010中,使用宏和VBA比较列中的数据并突出显示值(如果不同)

  25. 25

    Excel VBA - 将输入框中的值添加到列中的列表

  26. 26

    当用户在Excel(VBA)中向右滚动时移动形状

  27. 27

    在可排序的jQueryUI中的表之间移动包括th的列

  28. 28

    将Excel中的值导入VBA

  29. 29

    列表中的 VBA 或 Excel 最大值

热门标签

归档