`
wentise
  • 浏览: 23204 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Excel vba 读取上证指数

    博客分类:
  • vba
vba 
阅读更多




Public Sub 抓上海指数全部()
'删除上次结果sheet
delectsh



    Dim ie, dmt, an, selectONE
    Set ie = CreateObject("InternetExplorer.Application")    '创建一个IE对象
    With ie
        .Visible = False    '显示它
        .navigate "http://vip.stock.finance.sina.com.cn/corp/go.php/vMS_MarketHistory/stockid/000001/type/S.phtml"    '加载某个页面
        Do Until .ReadyState = 4    '等待页面加载完毕
            DoEvents
        Loop
        Set dmt = .document    '将IE浏览器加载的页面文档,赋予dmt变量
        Set selectONE = dmt.getElementsByName("year")
     
        With selectONE
        Set option_year = .Item(0)
           For i = 0 To option_year.Length - 1
           Dim year
           year = option_year.Item(i).innerText
              '创建年份sheet
              newsheet (year)
              抓上海指数按年 (year)
           Next i
        End With
        
        
    End With
    Set ie = Nothing
    
End Sub

Function 抓上海指数按年(year As String)
Dim URL, last_row, i
last_row = 0
Cells.Clear
For i = 1 To 4
'http://vip.stock.finance.sina.com.cn/corp/go.php/vMS_MarketHistory/stockid/000001/type/S.phtml?year=2012&jidu=2
URL = "http://vip.stock.finance.sina.com.cn/corp/go.php/vMS_MarketHistory/stockid/000001/type/S.phtml?year=" & year & "&jidu=" & i

Set sheet_year = Worksheets(year)
With sheet_year.QueryTables.Add(Connection:= _
                                     "URL;" & URL, _
                                     Destination:=sheet_year.Range("A" & last_row + 1))
                .WebTables = "FundHoldSharesTable"
                .Refresh BackgroundQuery:=False
            End With
            last_row = sheet_year.[A65536].End(xlUp).Row
Set sheet_year = Nothing

Next
End Function

Public Sub delectsh()
Dim c As Worksheet
For Each c In Worksheets
 If Left(c.name, 3) <> "set" Then '这里的“set”区分大小写
 Application.DisplayAlerts = False '删除时不用确认
 c.Delete
 End If
Next c
End Sub


Function newsheet(name As String)
    sname = name
    'Sheets(Sheets.Count).name
    'abc = DateSerial(Left(sname, 4), Mid(sname, 5, 2), Right(sname, 2)) + 1
    'sname = year(abc) & Format(Month(abc), "00") & Format(Day(abc), "00")
    '===========================================================
    Sheets.Add
    ActiveSheet.name = sname
    '===========================================================
End Function


分享到:
评论

相关推荐

    EXCEL VBA股票模拟交易系统

    **Excel VBA股票模拟交易系统**是通过使用Excel的Visual Basic for Applications (VBA)宏语言来构建的一个自定义应用程序,旨在模拟真实的股票交易环境。这个系统提供了4种不同的交易策略,帮助用户理解和实践投资...

    Excel VBA之快速上手

    ### Excel VBA之快速上手知识点详解 #### 第一章 Excel VBA简明语言之基础 **第一节 标识符** - **定义**: 标识符用于标识变量、常量、过程、函数、类等语言构成单位的符号,是编程语言中必不可少的一部分。 - **...

    Excel VBA 快速上手之宝典

    ### Excel VBA 快速上手上宝典 #### 第一章 Excel VBA 简明语言之基础 ##### 第一节 标识符 - **定义**:标识符是用来识别变量、常量、过程、函数、类等语言成分的名称。它们在编程中扮演着非常重要的角色,因为...

    hurst指数excel实现

    通过VBA,你可以编写一段代码,读取上证指数数据,执行差分、分段、统计量计算和R/S分析,最后得出Hurst指数。 标签“hurst”和“xls”表明这个压缩包可能包含一个使用VBA编程的Excel文件,该文件设计用于计算Hurst...

    编写高效Excel_VBA代码的最佳实践.doc

    在Excel VBA编程中,优化代码的性能是至关重要的,特别是在处理大量数据和复杂运算时。以下是一些关键的实践技巧,旨在提升VBA代码的运行效率: 1. **关闭不必要的应用程序属性**: - `Application.ScreenUpdating...

    (完整word)Excel-VBA数组入门教程集合.doc

    Excel VBA 数组入门教程集合 Excel VBA 数组是 Excel 中的一种数据结构,用于存储和操作大量数据。在本教程中,我们将学习数组的基本概念、声明、赋值、读取和应用。 一、数组的基本概念 数组是一组数字的集合,...

    从腾讯证券自动抓取股票数据.zip_VBA__VBA_

    本项目"从腾讯证券自动抓取股票数据.zip_VBA__VBA_"正是利用了VBA的这一特性,实现了从腾讯证券接口获取股票数据的功能,特别是对上证和深证市场的数据进行了区分。 首先,我们需要了解VBA的基础知识。VBA是基于...

    Excel股票分析工具集成

    Excel股票分析工具集成是一种高效的方法,它利用了Excel的强大功能以及VBA(Visual Basic for Applications)的编程能力,为投资者提供了便捷的股票分析环境。在Excel菜单栏集成这样的工具,可以极大地提高用户的...

    Excel22种折线图源码文件.rar

    8. **指数折线图**:适用于展示数据的指数增长或衰减,例如人口增长或病毒传播。 9. **移动平均折线图**:通过计算数据序列的移动平均值来平滑数据波动,揭示长期趋势。 10. **折线图地图**:在地理地图上绘制折线...

    excel-vb常用词汇252个

    `LockRead`在此上下文中可能指禁止读取文件。 #### Long 长整形 `Long`数据类型用于存储较大的整数。 #### Lost 丢失,失去 `Lost`在此上下文中可能不明确。 #### Main 主函数 `Main`通常指程序的主要入口点。 #...

    VB 操控excel

    在提供的文件列表中,`Module1.bas`通常包含VBA模块,这些模块可以是用户自定义的函数或过程,用于执行特定任务,如读取、写入或操作Excel工作表。 `Form1.frm`和`Form1.frx`是VB窗体文件和资源文件,它们可能包含...

    vba321_matlab_human_

    2. **VBA编程**:VBA可以用来创建自定义函数,自动执行Excel或其他Office应用程序中的任务。在这个场景下,VBA可能被用来读取用户输入的数据,如体重和身高,然后计算BMI并显示结果。 3. **MATLAB接口开发**:...

    主机代码分析COPYBOOK长度计算

    综上所述,"主机代码分析COPYBOOK长度计算"是一个涉及COBOL编程、COPYBOOK管理、VBA编程以及Excel数据处理的综合技术问题。通过VBA在Excel中实现COPYBOOK解析和信息展示,能够有效地辅助开发人员理解和优化主机系统...

    VB计算HURST指数

    本篇文档详细介绍了如何通过VBA(Visual Basic for Applications)在Excel环境中编写程序来计算Hurst指数。Hurst指数是一种用于衡量时间序列长期依赖性的统计量,在金融、气象学等领域有广泛应用。接下来,我们将...

    电子书Arena仿真软件中文教程第十章节参照.pdf

    在Arena中,VBA可以用于执行复杂的任务,如读取和写入文件,以及与Excel等其他应用进行数据交换。 10.3 创建定制用户界面 本节讨论如何使用这些技术创建定制的用户界面,使得用户可以根据自身需求更直观、高效地...

    Stock-Analysis:VBA项目

    1. **数据导入与清洗**:VBA可以读取CSV、Excel或其它数据源中的股票历史数据,并进行初步的数据清洗,如去除空值、处理日期格式等。 2. **数据分析**:通过VBA,可以编写代码计算股票的各类指标,如收益率、波动率...

    FMLDATA的源码

    其中, XXXXXX为股票代码,如深发展为000001等,由于沪市指数代码与深市股票代码重复,所以沪市指数代码在原代码前加1,例如上证综指为000001,则这里的XXXXXX为1000001(7位);N是编号,由用户自己指定,应为大于0...

    CPK计算(含VB.NET源代码)

    源代码中可能包含了读取数据、计算统计量(如均值和标准差)、计算CPK值以及将结果写入Excel的工作流程。 "bin\Release"目录下的程序是已经编译好的64位可执行文件,可以直接运行在支持64位操作系统的计算机上。这...

    arena中文教程

    在第四节中,我们继续讨论 VBA,并对呼叫中心模型进行了扩充,使其能够纪录有关呼叫数据并且在微软的 Excel 中将呼叫周期信息用图像表示出来。最后一节即第五节,我们将从整体上介绍如何设计读者自己的模块,从而...

Global site tag (gtag.js) - Google Analytics