gpt4 book ai didi

vba - 执行循环时条件函数上的应用程序定义或对象定义的错误

转载 作者:行者123 更新时间:2023-12-03 08:23:59 24 4
gpt4 key购买 nike

我编写了以下代码,以将工作表(2)的某个范围内的某个范围的工作表(1)的某个值的单元格复制到工作表(3)的某个范围内的值:

  Sub sortdata()

Dim i As Integer
Dim n As Integer
Dim w2 As Worksheet
Dim w1 As Worksheet
Dim w3 As Worksheet
Dim SW As String
Dim qrycolvaly As Range
Dim qrycolvalt As Range
Dim r As Range
Dim canceled(1 To 5) As String
Dim performed(1 To 200) As String
Dim startcell As Range


Set w2 = ThisWorkbook.Worksheets(2)
Set w1 = ThisWorkbook.Worksheets(1)
Set w3 = ThisWorkbook.Worksheets(3)
Set startcell = w1.Range("B9")
Set r = w3.Range("C1").End(xlDown)
Set qrycolvaly = w3.Range("C1", r)

For i = 1 To 200
With w2
SW = .Cells(i + 1, 3).Value
If IsError(WorksheetFunction.Match(SW, qrycolvaly, 0)) = True Then
performed(i) = SW
End If
End With
startcell.Offset(i - 1, 0).Value = performed(i)
Next i

End Sub

当存在一个 SW(工作表2的特定范围的某些值)与工作表3的指定范围的值不匹配时,我的代码停止在该指令上:
 If IsError(WorksheetFunction.Match(SW, qrycolvaly, 0)) = True Then

与错误:

1004:Application-Defined or Object-Defined error



我已经尝试了很多事情,特别是在使它们变暗时更改了变量的类型,但是我没有使它起作用。

¿有人可以告诉我我在做什么错吗?

最佳答案

使用Application.Match代替WorksheetFunction.Match,它是VBA的等效功能,不会生成错误消息。

然后,您将使用两个VBA函数(带有IsError),而不是VBA和Excel函数。
WorksheetFunction.Match返回Excel值#N/A,而Application.Match返回IsError识别的VBA错误值(错误2042)。

关于vba - 执行循环时条件函数上的应用程序定义或对象定义的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48381183/

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