Vba 范围属性过程中应用程序定义的错误,是什么导致了错误?

Vba 范围属性过程中应用程序定义的错误,是什么导致了错误?,vba,excel,Vba,Excel,我感兴趣的是为什么下面的行(“表(“欧元/美元”)。列(“A”)。结束(xlDown)。偏移量(1,0)。值=欧元/美元。t\U日期”)会导致 “应用程序定义或对象定义错误” 将代码替换为等效代码:Sheets(“Euro_USD”).Cells(rows.Count,“A”).End(xlUp).Offset(1,0).Value=Euro_USD.t_date会导致错误消失 为什么会出现错误?这是否与end(xldown)for columns属性已在堆栈中被占用(术语上不确定)有关,因此新

我感兴趣的是为什么下面的行
(“表(“欧元/美元”)。列(“A”)。结束(xlDown)。偏移量(1,0)。值=欧元/美元。t\U日期”)
会导致

“应用程序定义或对象定义错误”

将代码替换为等效代码:
Sheets(“Euro_USD”).Cells(rows.Count,“A”).End(xlUp).Offset(1,0).Value=Euro_USD.t_date
会导致错误消失

为什么会出现错误?这是否与end(xldown)for columns属性已在堆栈中被占用(术语上不确定)有关,因此新请求生成错误

Private Sub run() ' run the whole operation

Dim HTTP_Req As Object: Set HTTP_Req = New HTTP_Req
Dim EURO_USD As Object: Set EURO_USD = New EURO_USD


If Sheets("EURO_USD").Columns("A").End(xlDown).Value = DateValue(EURO_USD.t_date) Then
    Debug.Print "Date already exist"
    Else
    Sheets("Euro_usd").Columns("A").End(xlDown).Offset(1, 0).Value = EURO_USD.t_date <-- Error here!

End If

End Sub
Private Sub run()'运行整个操作
Dim HTTP_Req作为对象:设置HTTP_Req=新建HTTP_Req
作为对象的Dim EURO\U USD:设置EURO\U USD=新的EURO\U USD
如果表格(“欧元兑美元”)列(“A”)结束(xlDown).Value=日期值(欧元兑美元.t\u日期),则
调试。打印“日期已存在”
其他的

表(“欧元兑美元”)。列(“A”)。结束(xlDown)。偏移量(1,0)。值=欧元兑美元兑美元日期如果列A为空,此语句将尝试在表中最大行之后的行中写入,这是不可能的。通过打印
表(“欧元/美元”)。列(“A”)。结束(xlDown)。行来检查。它可能等于
Sheets(“Euro_usd”).Rows.Count
(它给出了最大行数)


如果列A为空,则第二条语句(
xlUp
)将产生第一行,从而将值写入第二行(
Offset(1,0)
)。

查找最后一行,然后添加值。您可能还想查看以检查日期是否在列中,您可以使用
Application.WorksheetFunction.CountIf()
a列不是空的。。。因此,写入shets(“Euro_usd”).列(“A”).结束(xldown)。行返回3写入此值时,Euro_usd.t_日期的值和类型是什么?如果可以设置表(“Euro_usd”).列(“A”).结束(xldown)。偏移量(1,0)。值=日期,请尝试。所有这些都是为了找出陈述的哪一部分引起了错误。谢谢你花时间来帮助我。=date语句工作正常。