標題:
[發問]
想製作一個股票價格的最高價紀錄
[打印本頁]
作者:
89691007
時間:
2014-4-9 12:22
標題:
想製作一個股票價格的最高價紀錄
我想要在股票紀錄表中
設定一個從追蹤日開始
每天更新當日最高價格
如果當日最高價有比歷史最高價還要高的話
將歷史最高價=當日最高價
如果沒有大於則不改變歷史最高價
資料有多筆每一行都需要逐一比價
因為資料是在收盤後才做一次更新
所以希望能做成單鍵按鈕的形式
每天更新完收盤後做一次最高價更新
例如:代號 股名 當日最高 歷史最高
1101 台泥 47.55 47.0
1102 亞泥 38.3 40.0
則按下按鈕後,台泥的歷史最高會改變成47.55,而亞泥不變
希望有大大們可以協助我 謝謝~
作者:
yen956
時間:
2014-4-9 13:57
試試看:
Option Explicit
Private Sub CommandButton1_Click()
Dim i, lastRow As Integer
lastRow = [A1].End(xlDown).Row '取得A欄最下一行
For i = 2 To lastRow
'如果 當日最高價>歷史最高價, 則
If Cells(i, 3) > Cells(i, 4) Then
Cells(i, 4) = Cells(i, 3) '歷史最高價=當日最高價
End If
Next
End Sub
複製代碼
作者:
89691007
時間:
2014-4-9 15:11
測試結果OK
感謝大大喔
我會好運用的
作者:
89691007
時間:
2014-4-10 09:12
可以再請問一下大大
03. Dim i, lastRow As Integer
04.
05. lastRow = [A1].End(xlDown).Row '取得A欄最下一行
06.
07. For i = 2 To lastRow
這邊的意思是甚麼嗎?
我想設計其他按鈕但是不清楚逐行比對的寫法
感恩您~
作者:
owen06
時間:
2014-4-10 09:56
回復
4#
89691007
Dim i, lastRow As Integer
==> 定義『i』、『lastrow』為整數
lastRow = [A1].End(xlDown).Row '取得A欄最下一行
==> lastrow=取得A欄的最後一個有數值的列號
你在工作表裡,按ctrl+上、下、左、右鍵去動看看,就很清楚明暸了
end(xldown)=ctrl+下
end(xlup))=ctrl+上
end(xltoright))=ctrl+右
end(xltoleft))=ctrl+左
但是如果你的a欄的數值有不連續的空白格的話,建議你改用
[a65536].end(xlup).row,比較不會發生判斷錯誤。
For i = 2 To lastRow
==> for 要搭配next, for i= 2 to lastrow(剛才上面有計算出lastrow的數值),
i就會從2一直執行到lastrow的數值為止,假設lastrow是50好了,
那麼他就會幫你去測 If Cells(2, 3) > Cells(2, 4)
Cells(3, 3) > Cells(3, 4)
Cells(4, 3) > Cells(4, 4)
:
:
:
Cells(50, 3) > Cells(50, 4)
作者:
89691007
時間:
2014-4-10 10:19
所以I從2開始是指跳過標頭開始往下計算範圍
lastRow = [A1].End(xlDown).Row '取得A欄最下一行
是計算有資料的數列共有幾行
for i= 2 to lastrow 是只有變動行數範圍嗎
那如果是變動列數呢?
謝謝大大詳細解說~
作者:
owen06
時間:
2014-4-10 13:35
回復
6#
89691007
for i= 2 to lastrow 是只有變動行數範圍嗎
那如果是變動列數呢?
上面的lastrow,不就是計算列數的變動嗎?
去判斷出資料範圍在a欄的第幾列。
cells(row,column)
row =列(橫)
column=欄(直)
cells(i,1)、cells(1,i)
看你要讓哪一個動,就把他設定為變數就好了
作者:
89691007
時間:
2014-4-10 22:19
喔喔~了解!
謝謝大大的回覆
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)