gpt4 book ai didi

在 ActiveCell.Value <> ""上执行 VBA 类型不匹配错误

转载 作者:行者123 更新时间:2023-12-04 21:35:13 24 4
gpt4 key购买 nike

嘿,我有代码将行移到另一个带有单元格名称的工作表,一个循环,直到它在数据末尾遇到一个空白,这里的代码摘录;

Range("AF2").Select
Do While ActiveCell.Value <> ""
strDestinationSheet = ActiveCell.Value
ActiveCell.Offset(0, -31).Resize(1, ActiveCell.CurrentRegion.Columns.count).Select
Selection.Copy

Sheets(strDestinationSheet).Select
N = Cells(Rows.count, "AF").End(xlUp).Row
lastRow = N

Cells(lastRow + 1, 1).Select
Selection.PasteSpecial xlPasteValues
Application.CutCopyMode = False

Sheets(strSourceSheet).Select
ActiveCell.Offset(0, 31).Select
ActiveCell.Offset(1, 0).Select
Loop

然而,虽然这部分代码在运行它的最新实例之前运行良好,但现在在第二行 Do While ActiveCell.Value <> ""上引发错误,表示类型不匹配。我不确定发生了什么改变来突然停止这项工作,有什么想法吗?非常感谢。

最佳答案

我个人不喜欢 Do Loops 遍历一组单元格。我更喜欢 For Each 循环。

正如@bruceWayne 所说,避免使用 Select 会减慢代码速度。

适当的缩进使代码更容易阅读并避免简单的错误。

Dim cel As Range
With Sheets(strSourceSheet)
For Each cel In .Range("AF2", .Range("AF2").End(xlDown))
If Not IsError(cel) Then
strDestinationSheet = cel.Value
cel.Offset(0, -31).Resize(1, cel.CurrentRegion.Columns.Count).Copy
N = Sheets(strDestinationSheet).Cells(Sheets(strDestinationSheet).Rows.Count, "AF").End(xlUp).Row
Sheets(strDestinationSheet).Cells(N + 1, 1).PasteSpecial xlPasteValues
End If
Next cel
End With

关于在 ActiveCell.Value <> ""上执行 VBA 类型不匹配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39920210/

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