gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 20:45:00 25 4
gpt4 key购买 nike

我有以下代码:它工作得很好,但是当列被合并单元格时,结果是错误的。如果有任何方法可以避免合并单元格的计数或更具体 - 仅计算 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检查最后一个单元格是否已合并。

enter image description here

这是你正在尝试的吗?

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

enter image description here

如果你想忽略合并单元格上方的空白单元格,你可以使用这个
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

enter image description here

关于excel - 自动填充宏,当列中有合并单元格时发生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20509341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com