Board logo

標題: [發問] 有的高手可以幫我嗎? [打印本頁]

作者: ms2001    時間: 2010-7-30 23:09     標題: 有的高手可以幫我嗎?

  A  B  C
1 代號  名稱  漲跌幅
2 2317 鴻海  +1 %
3 2303 聯電   -1.5%
4 2454 聯發科  +2.3%
5 2498 宏達電 +6.9%
6 2501 國建  +3.1%
7 3008 大立光 +5.2%
 

以上資料,C欄是動態的,隨時會改變(由DDE導入),如何把漲3%以上的股票代碼跟名稱傳送到SHEET2指定的欄位,
並將最新的資料放在最上頭,舊的資料往下移,舊的第四筆後就刪除;當新的資料出來時,同時跳出BOX提醒。如下:


 A   B  C
1 代號 名稱  漲跌幅
2 3008 大立光 +5.2% <---最新一筆
3 2498 宏達電 +6.9%     二
4 2501 國建  +3.1%     三
      .
      .
    以下自動刪除
--------------------------------------------------------------------
以上,感恩~


有的高手可以幫我嗎?
作者: GBKEE    時間: 2010-8-1 07:19

本帖最後由 GBKEE 於 2010-8-1 17:01 編輯

回復 1# ms2001
這是Sheet1工作表物件事件的程式碼
  1. Private Sub Worksheet_Calculate()
  2.     Dim i, F
  3.     i = 1
  4.     With Sheet2
  5.         .Range(.Range("A1"), .Range("A1").End(xlDown)).Resize(, 3).Clear
  6.     End With
  7.     Do
  8.         Set F = [C:C].Find(Application.Large([C:C], i), LookIn:=xlValues)
  9.         If F Is Nothing Then Exit Do
  10.         If F >= 0.03 Then
  11.             Sheet2.Range("A1")(i).Resize(, 3).Value = Range(F(1, -1), F).Value
  12.             i = i + 1
  13.             If i > [Count(C:C)] Then Exit Do
  14.         Else
  15.             Exit Do
  16.         End If
  17.     Loop
  18.     MsgBox "更新完畢"
  19. End Sub
複製代碼

作者: ms2001    時間: 2010-8-2 16:40

謝謝,真的幫了我一個大忙。
再請教,當我的代碼如果是 0 開頭的,如:04197,富邦DG,它帶入SHEET2時,只會顯示4197,前面的0不見了,要如何修改?先謝謝你了!
作者: GBKEE    時間: 2010-8-2 18:47

回復 3# ms2001
試試看
If F >= 0.03 Then
           Range(F(1, -1), F).Copy Sheet2.Range("A1")(i)        
           i = i + 1
            If i > [Count(C:C)] Then Exit Do
        Else
            Exit Do
        End If
End If
作者: ms2001    時間: 2010-8-2 20:44

成功了,非常感謝版大~感恩喔~




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