簡體   English   中英

VBA EXCEL合並一列中的行

[英]VBA EXCEL Merging Rows in one Columns

因此,我有一列列出了不同的模塊,其中一些重復了5行,有些重復了20行。我正在嘗試通過VBA合並這些模塊,但是我的代碼有問題。 這是我正在使用的Sub,我已注釋了逐行調試后錯誤的出處。 感謝您對此錯誤的任何輸入!

多謝你們!

筆記:

  • 我從7開始,因為那是模塊記錄的起始行。

     Sub ReMergeECURowsMPNT() Dim wsMPNT As Worksheet Set wsMPNT = Worksheets("Module Part Number Tracker") Dim lrowMPNT As Long lrowMPNT = CRC.LastRowInMPNT Dim i As Long Dim j As Long Dim sameRows As Boolean sameRows = True For i = 7 To lrowMPNT If StrComp(Cells(i, 3), Cells(i + 1, 3), vbTextCompare) Then sameRows = False End If If sameRows = False Then With wsMPNT .Range(Cells(i, 3), Cells(i + 1, 3)).Merge '''Application defined error on this line End With End If sameRows = True Next i 

    結束子

除非將DisplayAlerts設置為False ,否則通常應獲得提示,例如“所選內容包含多個數據值。合並到一個單元格中將僅保留最左上角的數據。” ,如果單擊“取消”而不是“確定” ,則VBA會引發“應用程序定義的錯誤或對象定義的錯誤”

另外,檢查行lrowMPNT = CRC.LastRowInMPNT 如果您要合並“ C列” ,則可以嘗試以下簡單操作:

Sub ReMergeECURowsMPNT()
    Application.DisplayAlerts = False
    Dim wsMPNT As Worksheet, lrowMPNT As Long, i As Long, j As Long
    Set wsMPNT = Worksheets("Module Part Number Tracker")
    wsMPNT.Select
    lrowMPNT = wsMPNT.UsedRange.Row - 1 + wsMPNT.UsedRange.Rows.Count
    For i = 7 To lrowMPNT
        If Cells(i, 3) = Cells(i + 1, 3) Then
            j = j + 1
        ElseIf j > 0 Then
            Range(Cells(i - j, 3), Cells(i, 3)).Merge
            j = 0
        End If
    Next i
    Application.DisplayAlerts = True
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM