我正在使用Excel中从PDF提取的数据。我正在尝试创建一个宏,该宏将检查“指南”选项卡中的日期输入,并将具有匹配日期的所有行数据从一张纸复制到另一张纸。
Sub Copy()
Dim lastrow As Long
Dim myRow As Long
Dim myCopyRow As Long
Dim Data As Worksheet
Dim Form As Worksheet
Set Data = Sheets("PDF Data ")
Set Form = Sheets("Formula")
myCopyRow = 2
lastrow = Data.Cells(Data.Rows.Count, "A").End(xlUp).Row
Application.ScreenUpdating = False
With Data
For myRow = 1 To lastrow
If Data.Cells(myRow, "A") = Sheets("Guide").Cells(C3) Then
Data.Cells(myCopyRow, "B") = Form.Cells(myRow, "A")
myCopyRow = myCopyRow + 1
End If
Next
End With
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub
在调试时,我得到以下信息:
“运行时错误'1004':应用程序定义或对象定义的error2”
一行:
如果Data.Cells(myRow,“ A”)= Sheets(“ Guide”)。Cells(C3)然后
我要比较的数据是日期。 Excel将“指南”上的用户输入日期识别为短日期并将其格式化为短日期,但是,Sheet1上的日期最初被识别为文本字符串,因为它是使用较大的字符串中的公式进行拆分的。我最初以为是这个问题,所以尝试重新格式化时没有运气。
我希望有人可以看一下,让我知道以上代码是否有问题,并确认是否两个单元格都需要识别为日期? VBA可以在检查之前将其转换吗?
谢谢。
答案 0 :(得分:2)
对于VBA运行时错误-如果要对照单元格0x10000.bin
中的值检查该值,请使用C3
方法而不是Range
方法:
Cells
对于比较日期,您可以使用If Data.Cells(myRow, 1).value = Sheets("Guide").Range("C3").value Then
CDate
答案 1 :(得分:0)
如果要使用Cells方法,则需要以下语法:
Worksheets("Guide").Cells(3,"C")