求论坛大神帮我看看这个表格,需求A到I列有相同的合并。T到U列有相同的合并,具体麻烦看下附件。感谢。只差最后的一点了,感谢。现在测试了一下。第9行,第10行合并不了。其他都可以
(原表)(希望得到的)(代码)

解决方案 »

  1.   

    在Excel 2003中开始记录宏,手动完成所需功能,结束记录宏,按Alt+F11键,查看刚才记录的宏对应的VBA代码。
      

  2.   

    Public Function exceldc(ByVal tt As String)
        Dim t As Integer
        Dim B As Integer
        B = 1
        Set xlsApp = CreateObject("Excel.Application")
        Set xlswb = xlsApp.Workbooks.Open(tt)                                       '要打开的文档路径
        Set xlsws = xlswb.Worksheets(1)
        xlsApp.DisplayAlerts = False
        Set Worksheet = xlsApp.ActiveSheet
        '获取数据
        'xlsWs.Range(Cells(1, 2), Cells(1, 5)).Merge '合并a1:b2单元格
        For ff = 1 To xlsws.UsedRange.Columns.Count
            If xlsws.Cells(1, ff) = xlsws.Cells(1, ff + 1) Then
                t = t + 1
            Else
                If t > 0 Then
                    xlsws.Range(xlsws.Cells(1, ff - t), xlsws.Cells(1, ff)).Merge   '合并a1:b2单元格
                    t = 0
                End If
            End If
            If xlsws.Cells(1, ff) = xlsws.Cells(2, ff) Then
                xlsws.Range(xlsws.Cells(1, ff), xlsws.Cells(2, ff)).Merge           '合并a1:b2单元格
            End If
        Next ff
        xlswb.Save
        xlswb.Close
        xlsApp.Quit
        Set xlsws = Nothing
        Set xlswb = Nothing
        Set xlsApp = Nothing    Shell "cmd.exe /c start " & tt, vbMaximizedFocusLEnd Function
    这段代表我用来合并表头的。相同 合并,你自己拿去改改!