使用范围数据类型的类型不匹配



代码获取两个工作簿,并将基于该值的特定数据复制到目标工作簿中。

它以前有效,但我调整了它。

Dim StatusCol As Range
Dim StatusCol2 As Range
Dim Status As Range
Dim PasteCell As Range
Dim SCH22 As Workbook
Dim SCH21 As Workbook
Dim BD As Workbook
Set SCH22 = Workbooks.Open("path to first workbook")
Set SCH21 = Workbooks.Open("path to second workbook")
Set BD = Workbooks.Open("path to pasting workbook")
Set StatusCol = SCH22.Sheets("CONTFRM22-23").Range("T2:T5000")
Set StatusCol2 = SCH21.Sheets("CONTFRM20-21").Range("R2:R5000")
ThisWorkbook.Sheets("2022-23").Range("A2:AC5000").ClearContents
ThisWorkbook.Sheets("2020-21").Range("A2:R5000").ClearContents
For Each Status In StatusCol
If BD.Sheets("2022-23").Range("A2") = "" Then
Set PasteCell = BD.Sheets("2022-23").Range("A2")
Else
Set PasteCell = BD.Sheets("2022-23").Range("A1").End(xlDown).Offset(1, 0)
End If

If Status.Value > 31 Then Status.Offset(0, -19).Resize(1, 31).Copy PasteCell

Next Status
For Each Status In StatusCol2
If BD.Sheets("2020-21").Range("A2") = "" Then
Set PasteCell = BD.Sheets("2020-21").Range("A2")
Else
Set PasteCell = BD.Sheets("2020-21").Range("A1").End(xlDown).Offset(1, 0)
End If

If Status.Value > 31 Then Status.Offset(0, -17).Resize(1, 29).Copy PasteCell

Next Status
end sub

我在线上收到一个"类型不匹配"错误

If Status.Value > 31 Then Status.Offset(0, -17).Resize(1, 29).Copy PasteCell

当它为第一个电子表格运行时,我没有得到错误,只有第二个电子表格。

即时窗口的最后一行显示"错误2015">

这意味着Status包含一个#VALUE!错误,该错误无法与类似31的数字进行比较。

在与31进行比较之前,请使用IsNumeric进行检查。

If IsNumeric(Status.Value) Then
If Status.Value > 31 Then 
Status.Offset(0, -17).Resize(1, 29).Copy PasteCell
End If
End If

相关内容

  • 没有找到相关文章