自动填充macros,当列中有合并单元格时发生错误

我有下面的代码:它工作得很好,但是当列合并单元格,结果是错误的。 如果有任何方法可以避免合并单元格的计数或更具体 – 只计算列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 

在这里输入图像说明