[英]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.