如何在不使用数组的情况下返回数据历史记录(并删除它)?

时间:2014-03-15 23:31:15

标签: excel vba excel-vba

我是VBA的新手(第一天,所以请耐心等待)。我想从雅虎财经(通过UDF)获取股票历史,然后返回值。 This tutorial解释了它,但我真的很讨厌整个按ctrl + shift +返回方法b / c你必须知道数据的长度,以及其他烦恼。

我怎么能像Bloomberg does那样只输入“= BDH(安全,字段,开始日期,结束日期)”,然后按Enter键,它会填充所有单元格? 此外,当我删除UDF时,我需要删除这些值(如Bloomberg所做的那样)。

以下代码不起作用,并且给出了“应用程序定义的或对象定义的错误”错误:

Function ms()
On Error GoTo do_error
    Worksheets("Sheet1").Range("E5").Value = "hello"
    ms = 12
    Exit Function
do_error:
    ms = Err.Description
End Function

谢谢!

1 个答案:

答案 0 :(得分:1)

我尽量不要过多地更改你的代码,

函数返回一个变量,(或者它是一个SUB)

所以,

Function ms() as Long  'or String or whatever it returns
On Error GoTo do_error
    Worksheets("Sheet1").Range("E5").Value = "hello"
    ms = 12
    Exit Function
do_error:
    ms = Err.Description
End Function