如何讓Excel在讀取轉錄即時報價時,還能自動翻頁!
- 帖子
- 10
- 主題
- 5
- 精華
- 0
- 積分
- 18
- 點名
- 0
- 作業系統
- windows 7
- 軟體版本
- Office 2007
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2015-4-3
- 最後登錄
- 2015-9-11

|
如何讓Excel在讀取轉錄即時報價時,還能自動翻頁!
我是個Excel VBA的菜鳥,這個VBA編碼是我用來測試期指的即時讀取用的,原本期望報價轉錄到畫面上的最後一列時,系統能自動往下翻頁或能往下新增保持有5列左右的空白列。請各位前輩賜教。
編碼如下:
Sub 讀取並轉錄期指()
Dim I As Long
Dim 上一次的總量 As Long, 即時總量 As Long
Range("A2:C1000").Select
Selection.ClearContents
I = 1
上一次總量 = 0
With Sheets("即時報價")
Do
即時總量 = .Cells(4, 7)
If 即時總量 <> 上一次的總量 Then
I = I + 1
Sheets("轉錄").Cells(I, 1) = .Cells(4, 4)
Sheets("轉錄").Cells(I, 2) = .Cells(4, 6)
Sheets("轉錄").Cells(I, 3) = .Cells(4, 7)
End If
上一次的總量 = 即時總量
DoEvents
Loop Until I = 100
MsgBox "轉錄完成"
End With
End Sub |
|
|
|
|
|
|
- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
2#
發表於 2015-4-23 22:29
| 只看該作者
我是個Excel VBA的菜鳥,這個VBA編碼是我用來測試期指的即時讀取用的,原本期望報價轉錄到畫面上的最後一列 ...
oklin 發表於 2015-4-22 16:24 
最簡單的方式是在
Sheets("轉錄").Cells(I, 3) = .Cells(4, 7)
底下加上一行 :
Sheets("轉錄").Cells(I+5, 1).select
不過會拖慢整體速度.
或者若你可以確定捲動規律,(轉錄幾行後要跳到哪一列)
那可以用 ActiveWindow.ScrollRow=標的列號
的指令直接捲動視窗到指定列號. |
|
|
|
|
|
|
- 帖子
- 10
- 主題
- 5
- 精華
- 0
- 積分
- 18
- 點名
- 0
- 作業系統
- windows 7
- 軟體版本
- Office 2007
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2015-4-3
- 最後登錄
- 2015-9-11

|
3#
發表於 2015-4-24 11:02
| 只看該作者
我試了您指導的兩種方式
結果第二種可以達成我的期望
經過幾次測試後,我發現在
Sheets("轉錄").Cells(I, 3) = .Cells(4, 7)
底下加上以下三行
If I > 20 Then
ActiveWindow.ScrollRow = I - 20
End If
剛好可以在我的螢幕下方一直保持五行的空白列,新的資料則一直被往上推。
非常感謝大大。 |
|
|
|
|
|
|