【发布时间】:2019-05-24 09:52:46
【问题描述】:
我有一个名为 STOCKS 的 Excel 工作表,它可以自动更新股票行情,例如股票名称、时间、最后交易价格、买入价、卖出价等。
Stock Name | Time | Last Trade Rate | Bid Price | Offer Price
1 ACC | 10.40am| 42 | 41 | 43
2 INFY | 10.40am| 100 | 99 | 101
3 TECH | 10.40am| 140 | 136 | 142
每只股票的价格和其他所有行值每秒都在变化,并且会随着价格变化或出价、出价变化而自动更新。
我添加了一个名为 LOGSSHEET 的单独工作表
Excel 代码要做什么:
如果任何列中的任何单元格值发生更改,那么我希望在复制/记录整个列的 LOGSHEET 中记录相同的值
例如,如果 INFY 股票的出价发生变化,则整个行(在这种情况下,行包含股票 INFY)应记录/复制到 LOGSHEET 中
示例: 2 INFY | 10.40am| 100 | 99 | 101
类似地,如果说另一个或相同脚本的要约价格或时间或最后交易率更改,则它会显示粘贴/记录在先前记录的条目下方,例如:
2 INFY | 10.40am| 100 | 99.10 | 101
3 TECH | 10.40am| 140.50 | 136 | 142
等等……
我不是 Excel VBA 程序员,但我发现这段代码记录了一些内容,但不是整个行的组织。
我找到了一个代码,它以一种杂乱无章的方式做类似的事情,但不是我想要的
示例代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strAddress As String
Dim val
Dim dtmTime As Date
Dim Rw As Long
If Intersect(Target, Range("A1:M1000")) Is Nothing Then Exit Sub
'change range to suit
dtmTime = Now()
val = Target.Value
strAddress = Target.Address
Rw = Sheets("Log Sheet").Range("A" & Rows.Count).End(xlUp).Row + 1
With Sheets("Log Sheet")
.Cells(Rw, 1) = strAddress
.Cells(Rw, 2) = val
.Cells(Rw, 3) = dtmTime
.Cells(Rw, 3) = Stocks
End With
End Sub
【问题讨论】:
-
所以您只想复制更改为
Log Sheet的行并添加一个名为what...Time Stamp的列?您在哪里输入更改的时刻? -
也不需要添加单独的时间戳......即使该行中任何单元格中的任何一个值发生变化,也只需复制整行......等等......