我有以下代码:它运行良好,但当列合并单元格时,结果却是错误的。如果有任何方法可以避免对合并单元格进行计数或更具体 - 只计算B列中仅包含7个字符的数据:
Sub Second()
Range("B15:I15").Select
Selection.AutoFill Destination:=Range("B15:I" & Range("B" & Rows.Count).End(xlUp).Row)
End Sub'
答案 0 :(得分:1)
如果合并的单元格总是在最后一行,那么很容易。您需要做的就是使用.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