簡體   English   中英

嘗試合並Excel VBA中的單元格時出錯

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

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