会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 技巧 > Excel技巧 > 操作 > 正文

Excel 97/VBA技术讲座之三

时间:2005-02-24 12:26 来源:Excel Home 作者:admin 阅读:

   添加数据后的K线图 2. 创建分解的宏    根据分解后的简单工作,按照上一节介绍的工作步骤,采用录制宏的方法创建三个宏:Import_Data、Copy_Data和Update_Chart。由于篇幅所限,不一一介绍具体录制宏的具体操作。以下给出录制、编辑后的VBA宏。
   
Sub Import_Data()
' 导入股票行情数据
' 快捷键: Ctrl+Shift+I
    Workbooks.Open FileName:="F:\EXCEL\ST1.XLS"
    Selection.AutoFilter
    Selection.AutoFilter Field:=2, Criteria1:="沈阳万利"
    Range("A1:K9").Select
    Selection.Copy
    Sheets.Add
    ActiveSheet.Paste
    Range("A:C,H:J").Select
    Range("C1").Activate
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Range("A2:E2").Select
    Selection.Copy
    Range("A3").Select
    Selection.PasteSpecial Paste:=xlAll, _
        Operation:=xlNone, SkipBlanks:=False, _
        Transpose:=True
End Sub
Sub Copy_Data()
' 复制股票行情数据
' 快捷键: Ctrl+Shift+C
    Windows("ST1.XLS").Activate
    Range("A3:A7").Select
    Selection.Copy
    Windows("ST2.XLS").Activate
    Range("A2").Select
    Selection.End(xlToRight).Select
    ActiveCell.Offset(0, 1).Range("A1").Select
    ActiveSheet.Paste
End Sub
Sub Update_Chart()
' 更新K线图
' 快捷键: Ctrl+Shift+U
    Sheets("K线图").Select
    ActiveChart.SeriesCollection.Extend _
        Source:=Sheets("沈阳万利").Range("CS2:CS6"),_
        Rowcol:=xlRows, CategoryLabels:=False
End Sub
    请注意,Import_Data宏中的文件名、路径名会因操作的环境不同,后半部分主要是关于工作表行列转置的操作的宏语句,具体操作方法可以参见联机帮助中“转置行与列”。Copy_Data宏中的Selection.End(xlToRight).Select语句表示选定当前行的最后一个包含数据的单元格(操作时按Ctrl+→键)。语句ActiveCell.Offset(0, 1).Range("A1").Select中的Offset属性表示相对引用,这里表示选定当前单元格同一行右边相临的单元格,其中的Range("A1")是虚拟单元格,并不表示实际的A1单元格。这样就保证了该宏的通用性。可以每次将数据都复制到指定工作表的最后一列。当需要使用相对引用时,在录制相应操作前单击“停止录制”按钮右边的“相对引用”按钮即可。
    3. 装配宏
现在已有了完成各个步骤的宏:
    Import_Data:导入股票行情数据。
    Copy_Data:将股票行情数据复制到个股数据工作表。
    Update_Chart:更新K线图。
    下面的工作是将其装配在一起。最简单的方法仍然是使用宏记录器,只是这次要录制的是运行其它宏的宏。首先单击“录制宏”按钮,键入宏的名称“Auto_Add”,单击“确定”。然后单击“运行宏”按钮,逐个运行Import_Data、Copy_Data、Update_Chart宏。最后单击“停止录制”按钮。录制的宏如下:
   
Sub Auto_Add( )
    Application.Run “ST2.xls!Import_Data”
    Application.Run “ST2.xls!Copy_Data
    Application.Run “ST2.xls!Update_Chart
End Sub
实际上宏名称前面的“Application.Run “ST2.xls!”可以简化掉,而不影响宏的运行。

(责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: