[英]Error trying to merge cells in Excel VBA
我正在嘗試在Excel中過濾工作表,將一列復制到“中間工作表”,復制每個單元格並將其粘貼到第三個工作表中,在每個數據之間留下3個空行,然后將單元格與3中的數據合並之后是空白的。
代碼一直有效,直到它嘗試合並單元格。 它變得“瘋狂”並合並整個A列。 有人看到錯誤嗎?
Sub Filtrar()
Application.ScreenUpdating = False
Dim Lugar As String
Worksheets("Camiones_nacional").Activate
Lugar = Cells(2, 1).Value
Worksheets("Nacional_enero").Activate
Sheets("Nacional_enero").Select
Range("A1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=2, Criteria1:=Lugar
Range("A:A").Select
Selection.Copy
Worksheets("Calculos").Activate
Range("E1").Select
ActiveSheet.Paste
Dim celda As Integer
celda = 1
Dim c As Integer
c = 2
Dim c1 As Integer
c1 = 5
Dim c2 As Integer
c2 = 8
Do While celda < 30
Worksheets("Calculos").Activate
Cells(c, 5).Select
Selection.Copy
Worksheets("Camiones_nacional").Activate
Cells(c1, 1).PasteSpecial xlPasteValues
ActiveSheet.Range("A" & c1 & ":" & "A" & c2).Merge
celda = celda + 1
c = c + 1
c1 = c1 + 4
c2 = c2 + 4
Loop
Worksheets("Camiones_nacional").Activate
End Sub
首先,翻轉選擇通常會使VBA絆倒,因此最好使用Destination屬性將復制和粘貼寫入一行,或者只是重新分配值(因為我將在此處顯示,因為您的粘貼方法僅包含值)
此外,根據我的經驗,最好在Range中使用Cell調用而不是Column concatnation
Do While celda < 30
Worksheets("Camiones_nacional").Cells(c1, 1).Value = Worksheets("Calculos").Cells(c,5).Value
Worksheets("Camiones_nacional").Range(Cells(c1,1),Cells(c2,1)).Merge
celda = celda + 1
c = c + 1
c1 = c1 + 4
c2 = c2 + 4
Loop
在參考整個列合並時,我會通過確保您不會無意中選擇已合並范圍內的單元格進行調試,因為這會導致合並范圍合並
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.