问题:在网上下载了几只股票和上证指数的历史价格数据,每只股票的数据都是按月从2003年到2009年,包括交易日、开盘价、最高价、最低价、收盘价、成交量、调整后收盘价。下载的数据格式是csv(逗号分隔值文件),为了便于比较,要讲每只股票的数据并排放在一个Excel工作表中。
Sub MergeWorkbooks()
Dim FilesToOpen
Dim shtName As String
On Error GoTo ErrHandler
Application.ScreenUpdating = False
FilesToOpen = Application.GetOpenFilename(FileFilter:="Comma _
Separated Value文件(*.csv),*.csv", MultiSelect:=True, Title:="要合并的文件")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "没有选中文件"
GoTo ExitHandler
End If
For I = 1 To UBound(FilesToOpen)
Workbooks.Open Filename:=FilesToOpen(I)
Sheets(1).UsedRange.Copy
'shtName是每只股票数据的文件名,如:(600028.SS)中国石化.csv
shtName = Sheets(1).Name
'将数据粘帖到第二行以下
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Activate
[A2].End(xlToLeft).Offset(0, 7 * (I - 1)).Select
ActiveSheet.Paste
'第一行放上每只股票的名称,如:中国石化
Range("A1").Offset(0, 7 * I - 1).Value = Right(shtName, 4)
If I = 1 Then
'将不必要的数据隐藏
Range(Columns(2), Columns(6)).Select
Selection.Columns.Group
Else
'只留下股票的调整后的收盘价
Range(Columns((I - 1) * 7 + 1), Columns((I - 1) * 7 + 6)).Select
Selection.Columns.Group
End If
Application.CutCopyMode = False
'将打开的股票数据文件关闭,以节省内存空间
For Each wb In Workbooks
If wb.Name <> ThisWorkbook.Name Then
wb.Close False
End If
Next
Next I
他们的研究报告发表在一本关于传染性疾病的书上,题为When Zombies Attack!: Mathematical Modelling of an Outbreak of Zombie Infection(pdf)。作者写道:僵尸的爆发将是灾难性的,我们必须迅速地处理掉僵尸,否则我们就挂了;当然,如果认真起来,我们的假设不太现实,但是我们可以将模型同实际生活中的事件联系起来,比如政治的忠诚度、严重的传染疾病等等。
Citation: “When Zombies Attack!: Mathematical Modelling of an Outbreak of Zombie Infection,” [pdf] by Philip Munz, Ioan Hudea, Joe Imad and Robert J, Smith?. In “Infectious Disease Modelling Research Progress,” eds. J.M. Tchuenche and C. Chiyaka, Nova Science Publishers, Inc. pp. 133-150, 2009.