【问题标题】:Automating Query Creation Excel自动创建查询 Excel
【发布时间】:2015-04-08 05:19:52
【问题描述】:

我正在尝试通过 excel 创建股票筛选器。首先,Excel 可能不是创建股票屏幕的最佳选择,所以我对替代品持开放态度,但是 1. 我快完成了,而且 2. 零编程经验

所以在我告诉你我的问题之前,这是我到目前为止所得到的(在 ROIC 选项卡上工作):https://jumpshare.com/v/OxlCrsMZa18tS9bB8N1S?b=D89mk1t3hPnWdxyYxL6p

我不能做的,以及完成筛选器的,是对每个单元格进行查询。现在我认为,虽然我不知道,但可以创建一个启动查询的 宏,告诉 excel 将数据放在哪里(从上一个输入向下 50 行),并告诉 excel 在哪里找到放入什么代码(从前一个代码向下一行)。查询也必须重复到代码的末尾。 (您可能在想:“excel 行限制不是大约 100 万吗?”是的,我对此的解决方案是将资产负债表的一半放在 A:F 列,另一半放在 H:M 列。不过,你不需要包括在内,我可以弄清楚。)

查询从 yahoo Finance 中提取公司资产负债表,然后将数据导入数据表。由于资产负债表的格式都相同,因此很容易排序:每个指标比上一次搜索下降 50 行。

我需要自动化这个查询创建过程的原因是大约有 25,000 只股票,并且要进行筛选,我需要同时分析它们;因此,每只股票都需要自己的查询和自己的数据。

我尝试录制宏,但我似乎无法让它重复,每次新数据查询偏移 50 行,每个新代码偏移 1 行。

非常感谢您的帮助;我对 excel 很陌生,我不完全确定按照我的要求去做的可能性有多大。谢谢!

【问题讨论】:

  • This approach 可能会有所帮助。异步 XHR 可以让它更快。

标签: mysql vba excel


【解决方案1】:

我不禁认为您最好使用数据库(例如 Microsoft Access)而不是 Excel 来存储这么多数据。您仍然可以从电子表格运行计算并查询 Access 数据库中的数据表。开发您自己的 Excel 应用程序是一次有趣(而且令人发狂!)的旅程。说了这么多……

在 VBA 中需要学习的是循环。从列中一组股票代码值的简单循环开始:

Option Explicit

Sub test()
    Dim ticker As String
    Dim companyTicker As Range
    Dim allTickers As Range
    Dim lastRow As Long

    '---sets up a range containing all your ticker strings
    Dim lngMaxRow As Long
    lastRow = Sheets("ROIC").Range("B" & Rows.Count).End(xlUp).Row
    '---during your development, force your ticker set to be shorter
    lastRow = 10
    Set allTickers = Range("B5:B" & lastRow)

    '---now loop through all the companies and get the info for each one
    For Each companyTicker In allTickers
        ticker = companyTicker.Value
        '--- build up the query to Yahoo Finance using the company ticker string
        '    copy the data from your query to the cells in your workbook
        Debug.Print "ticker is " & ticker  'use a debug.print to check as you write the code
    Next companyTicker                     'get the next company ticker
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2015-10-01
    • 2015-04-09
    相关资源
    最近更新 更多