簡體   English   中英

自動填充宏,當列中有合並的單元格時發生錯誤

[英]AutoFill macro, error occured when there is merged cell in the column

我有以下代碼:它工作得很好,但是當列合並單元格時,它證明是錯誤的。 如果有任何方法可以避免對合並單元格進行計數或更具體地講-僅對B列中僅包含7個字符的數據進行計數:

Sub Second()
Range("B15:I15").Select
Selection.AutoFill Destination:=Range("B15:I" & Range("B" & Rows.Count).End(xlUp).Row)
End Sub'

如果合並的單元格始終位於最后一行,則很容易。 您只需要使用.MergeArea.Count來檢查最后一個單元格是否已合並。

在此處輸入圖片說明

這是您要嘗試的嗎?

Option Explicit

Sub Sample()
    Dim ws As Worksheet
    Dim Lrow As Long

    Set ws = ThisWorkbook.Sheets("Sheet2")

    With ws
        Lrow = .Range("B" & .Rows.Count).End(xlUp).Row

        If .Range("B" & Lrow).MergeArea.Count > 1 Then
            Lrow = Lrow - 1
        End If

        .Range("C15:I15").AutoFill Destination:=.Range("C15:I" & Lrow)
    End With
End Sub

在此處輸入圖片說明

如果要忽略合並單元格上方的空白單元格,則可以使用此

Option Explicit

Sub Sample()
    Dim ws As Worksheet
    Dim Lrow As Long

    Set ws = ThisWorkbook.Sheets("Sheet2")

    With ws
        Lrow = .Range("B" & .Rows.Count).End(xlUp).Row

        If .Range("B" & Lrow).MergeArea.Count > 1 Then
            If Len(Trim(.Range("B" & Lrow - 1))) = 0 Then
                Lrow = .Range("B" & Lrow).End(xlUp).Row
            Else
                Lrow = Lrow - 1
            End If
        End If

        .Range("C15:I15").AutoFill Destination:=.Range("C15:I" & Lrow)
    End With
End Sub

在此處輸入圖片說明

暫無
暫無

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

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