首页 > 解决方案 > 根据单元格中的值将一系列单元格移动到另一个工作表

问题描述

我什至不知道如何正确表达这句话,这无疑是我遇到麻烦的原因。

所以我每行有 3 列, names, 。我想把所有时间都放在同一个名字旁边,然后把它们放在另一张纸上,在以人名为标题的一列下。timevalues

我会对第一部分感到满意​​,但此外,如果可能的话,我还想确保发布时间时它们与它们最初旁边的值相关。

例子:

john     7    10  
john     5    20  
john   6.5    30                                        
amy     14    10             
amy      8    20    
amy      2    40 

变成

      john    amy  
10       7     14  
20       5      8  
30     6.5   
40              2  

标签: excelvbapivot-table

解决方案


Dim i As Integer, j As Integer
j = 6
Cells(1, 6).Value = Cells(1, 1).Value
For i = 2 To 6
    If Cells(i, 1).Value <> Cells(1, j).Value Then
        Cells(1, j + 1).Value = Cells(i, 1).Value
        j = j + 1
    End If
Next i

Range("C1:C6").Copy
Range("E2:E7").PasteSpecial

Range("E2:E7").Sort Key1:=Range("E2"), Order1:=xlAscending, Header:=xlNo
Range("E2:E7").RemoveDuplicates Columns:=1, Header:=xlNo

For k = 1 To 6
    For m = 6 To 9
        For n = 2 To 6
            If Cells(k, 1).Value = Cells(1, m).Value And Cells(k, 3).Value = Cells(n, 5).Value Then
                Cells(n, m).Value = Cells(k, 2).Value
            End If
        Next n
    Next m
Next k

此代码解决了您的特定示例。请记住,这不是通用代码,因此您必须更改实际事物中循环和范围的限制。


推荐阅读