Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Excel中合并两行_Excel_Vba_Pivot - Fatal编程技术网

在Excel中合并两行

在Excel中合并两行,excel,vba,pivot,Excel,Vba,Pivot,我在Excel工作表中有两行。除了一列之外,所有列都是相同的 我怎样才能做到这一点?我不太熟悉枢轴概念 有什么帮助吗 问候。希望这就是你想要的: Sub QuickCombine() Dim X() Dim Y() Dim objDic As Object Dim lngRow As Long Dim lngCol As Long Dim ws As Worksheet X = Range([a1], Cells(Rows.Count,

我在Excel工作表中有两行。除了一列之外,所有列都是相同的

我怎样才能做到这一点?我不太熟悉枢轴概念

有什么帮助吗


问候。

希望这就是你想要的:

Sub QuickCombine()
    Dim X()
    Dim Y()
    Dim objDic As Object
    Dim lngRow As Long
    Dim lngCol As Long
    Dim ws As Worksheet

    X = Range([a1], Cells(Rows.Count, "G").End(xlUp))
    Y = X
    Set objDic = CreateObject("scripting.dictionary")

    For lngRow = 1 To UBound(X, 1)
        If Not objDic.exists(LCase$(X(lngRow, 1) & X(lngRow, 2))) Then
            objDic.Add LCase$(X(lngRow, 1) & X(lngRow, 2)), lngRow
        Else
            Y(lngRow, 1) = vbNullString
            Y(objDic.Item(LCase$(X(lngRow, 1) & X(lngRow, 2))), 3) = Y(objDic.Item(LCase$(X(lngRow, 1) & X(lngRow, 2))), 3) & "," & X(lngRow, 3)
        End If
    Next

    Set ws = Sheets.Add
    [a1].Resize(UBound(X, 1), UBound(X, 2)) = Y
    Columns("A").SpecialCells(xlBlanks).EntireRow.Delete

End Sub

这是从中获得的。

我如何实现这一点?
您尝试过什么?我尝试过使用Pivot,但不知怎的,它总是返回sum,而不是column。我是新加入ExcelOk的,我使用的是移动应用程序,显然在我想评论的地方发布了两个答案。很抱歉(现在删除了答案)。所以我是说:您需要添加更多关于如何设置数据以及您已经尝试了什么的细节。乍一看,您需要遍历数据以查找重复项,因此您可能需要VBA或至少一个数组公式。如果你想让输出看起来和你的例子一模一样,就我所知不能用pivot表来完成。没错,你不能用pivot来完成。我知道一种方法。你能澄清一下,在每个ID中都在改变的只是程序类型吗?