Excel Macros 的使用

来源:互联网 发布:借壳上市 知乎 编辑:程序博客网 时间:2024/05/29 03:52

接触excel多了之后,发现很多好的使用方法。

比如 自带的一些函数, vlookup 之类的。

后来发现,有些数据需要做特殊处理的,自带函数已经不能满足了,然后发现了Macros, 开始尝试去学习VBA 看代码,发现好难,因为带了好多的参数。

今天发现通过录制在修改easy很多 。

发一个处理response的函数:

把 http://fund.eastmoney.com/Data/FavorCenter_v3.aspx?o=r&rnd=1501031140851 这个的返回提取出来三列我需要的数据,一个是基金的名字,昨天的值和今天的估值。还挺好用的。

‘函数名

Sub TEST3()
'OtherChar _:="]" 
'use ] to split string 用] 去切割response




 Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="]", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
        1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12 _
        , 1), Array(13, 1), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), _
        Array(19, 1)), TrailingMinusNumbers:=True
        
'Transpose:=True row to column   ,把切割后的结果 行转换为列


    Range("A1:Z1").Select
    Selection.Copy
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    
    ' split string using Comma:=True  在继续用逗号切割
    
    Range("A2:A28").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=False, OtherChar _
        :="]", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
        1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12 _
        , 1), Array(13, 1), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), _
        Array(19, 1), Array(20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array( _
        25, 1), Array(26, 1), Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1), Array(31, 1), _
        Array(32, 1)), TrailingMinusNumbers:=True
    Range("D31").Select
    
    'delete usless column and row  把没用的行和列删除 ,因为分段删除,第二次删除是在第一次删除的结果之上,所以标值会每次删除后都改变
    
         Rows("28:28").Select
    Selection.Delete Shift:=xlUp
    Columns("A:B").Select
    Selection.Delete Shift:=xlToLeft
    Columns("B:V").Select
    Selection.Delete Shift:=xlToLeft
    Columns("C:C").Select
    Selection.Delete Shift:=xlToLeft
    Columns("E:H").Select
    Selection.Delete Shift:=xlToLeft

' limit to decimal 0.00 保留两位小数

    Columns("B:B").Select
    Application.CutCopyMode = False
    Selection.NumberFormatLocal = "0.00_ "

End Sub


阅读全文
0 0
原创粉丝点击