代码获取两个工作簿,并将基于该值的特定数据复制到目标工作簿中。
它以前有效,但我调整了它。
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