Excel公式或VBA搜索匹配值,找到的每个匹配值都移动到新列

Excel公式或VBA搜索匹配值,找到的每个匹配值都移动到新列,vba,excel,Vba,Excel,我是新手,对excel有着非常基本的了解。我希望有人能帮助我,因为我几天来一直在寻找类似的公式或VBA代码,但运气不好。 我需要公式或VBA在范围内找到相同的值,并且在第一次匹配值时找到“移动到新列”。 例如: A1中的值对照H列中的所有值进行检查,如果发现相同的值,则将该值移动到B1,然后再次对照H列中的左侧值进行检查,如果发现相同的值移动到C1,则每次发现A1与H列中的值相同,则将该值移动到新的D1列,E1..继续,直到检查H列中的所有值并移动匹配值。A2中的该值与H列中的所有值进行核对后,

我是新手,对excel有着非常基本的了解。我希望有人能帮助我,因为我几天来一直在寻找类似的公式或VBA代码,但运气不好。

我需要公式或VBA在范围内找到相同的值,并且在第一次匹配值时找到“移动到新列”。 例如: A1中的值对照H列中的所有值进行检查,如果发现相同的值,则将该值移动到B1,然后再次对照H列中的左侧值进行检查,如果发现相同的值移动到C1,则每次发现A1与H列中的值相同,则将该值移动到新的D1列,E1..继续,直到检查H列中的所有值并移动匹配值。A2中的该值与H列中的所有值进行核对后,所有匹配值移动到B2、C2、E2等。继续,直到所有值都从H列移动。
这是数据移动前的外观:
0a B C D E F G H
----------------------------------------------------------
1    123                                            123
2    256                                            123
3    333                                            123
4                                                   123
5                                                   123
6                                                   256
7                                                   256
8                                                   333
9                                                   333 
10                                                  333
11                                                  333
12                                                  333
13333类似这样的:-

Sub tester()
With ActiveSheet
    For Each cell In .Range("A1:" & .Range("A1").End(xlDown).Address)
        i = 1
        For Each c In .Range("H1:" & .Range("H1").End(xlDown).Address)
            If cell.Value = c.Value Then
                cell.Offset(0, i).Value = c.Value
                i = i + 1
            End If
        Next
    Next
End With
End Sub

注意:这不会清除每次运行的结果。

通常,像这样没有显示任何代码的请求不会得到肯定的响应,因为堆栈溢出不是免费的代码编写服务。您需要将解决方案分解为多个步骤,然后开始研究如何完成每个步骤并编写一些代码。如果你的代码不起作用,那么在这里发布详细信息,你可能会得到一个非常有用的快速响应。对不起,我下次会尝试。在这种情况下,我甚至不知道如何开始编写代码来对这个问题进行排序,因为我的VBA级别非常基本。没问题——只是试图帮助您获得所需的东西——看起来有人帮了您!请确保将其标记为已接受的答案(如果有效),这样他们就可以获得信任,其他读者也会知道它有效。它的工作原理如前所述,只是在移动后不删除值,但这并不重要。