Board logo

標題: 如何寫一vba 抓出 CALL/PUT 最大成交量 [打印本頁]

作者: alims    時間: 2012-6-17 17:12     標題: 如何寫一vba 抓出 CALL/PUT 最大成交量

成交量                                                                               
640        640        705        △75        6                6400        2.2        2.2        2.4        ▽2.8        7799                       
550        550        570        △73        32                6500        3.6        3.6        3.7        ▽4.4        12023                       
464        463        467        △78        228                6600        4.4        4.4        4.5        ▽7.6        32553                       
365        360        385        △69        971                6700        8        7.9        8        ▽11.5        35801                       
282        279        282        △64        3087                6800        14        14        14.5        ▽18        35656                       
199        198        200        △52        11495                6900        24        23.5        24.5        ▽27        40295                       
126        125        127        △38        29425                7000        40.5        40        40.5        ▽39.5        41877                       
70        69        70        △24.5        52292                  7100         69        67        69        ▽54        28706                       
32        31.5        32        △12        60231                7200        110        111        112        ▽72        9546                       
13        13        13.5        △4.6        43271                7300        174        172        174        ▽84        2863                       
  如何寫一vba  抓出  CALL最大成交量是 7200 (60231口)   put 是7000 41877口
十分感謝(也就是SHOW 履約價)...
作者: ken759727    時間: 2012-6-17 17:30

回復 1# alims
  1. for i = 1 To 9
  2. if (Cells(i, 5) < Cells(i + 1, 5)) Then
  3. c1 = Cells(i + 1, 5)
  4. c2 = Cells(i + 1, 6)
  5. End If

  6. if (Cells(i, 11) < Cells(i + 1, 11)) Then
  7. p1 = Cells(i + 1, 5)
  8. p2 = Cells(i + 1, 6)
  9. End If
  10. Next

  11. Range("A15") = c1
  12. Range("A16") = c2
  13. Range("A17") = p1
  14. Range("A18") = p2
複製代碼
不知道這樣有沒有幫到你
作者: alims    時間: 2012-6-17 19:29

回復 2# ken759727


   十分感謝在這麼短的時間就回復而且又正確....
作者: oobird    時間: 2012-6-17 19:51

  1. Sub yy()
  2. a = [e:e].Find([max(e:e)], , , 1)(1, 2)
  3. b = [k:k].Find([max(k:k)], , , 1)(1, -4)
  4. MsgBox a & vbLf & b
  5. End Sub
複製代碼

作者: alims    時間: 2012-6-18 08:13

回復 4# oobird


    find 的函數也能這寫!厲害 .那最小也可以MIN嗎.
作者: oobird    時間: 2012-6-18 08:42

回復 5# alims

最好自己嘗試一下。
作者: freeffly    時間: 2012-6-18 08:45

回復 4# oobird


    版主可以問一下(1, 2)跟(1, -4) 代表的意思嗎?
作者: oobird    時間: 2012-6-18 08:48

回復 7# freeffly

位移的一種寫法,當找到最大值時位移到同列的某個欄位
作者: freeffly    時間: 2012-6-18 09:04

回復 8# oobird

        版主請問一下 你這裡用的find應該跟下面一樣方式吧
      Find([max(C:C)], , , 1)
        ,只要3各嗎分別代表哪幾個? 那各1的意思是?
        查了一下資料沒看到相關說明

        Cells.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate
作者: oobird    時間: 2012-6-18 09:23

你可以依照順序比對
這個1代表的是 LookAt:=xlWhole,預設(默認)值是xlPart
參數都有一個預設值,省略的參數就會自動採用預設值。
作者: freeffly    時間: 2012-6-18 09:27

回復 10# oobird


    原來是這樣
   真是感謝
   這各用法讓我學到真多
作者: c_c_lai    時間: 2012-7-29 17:46

回復 10# oobird
很不錯的範例,謝謝您!
[attach]11935[/attach]




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)