英语不是我的第一语言,所以我希望你能理解我
因为我对编程一无所知我正在向你寻求帮助:Excel专业人士;)
我有两张工作簿(数据源和记录)
On" datafeed",B列,B2到B400单元格我正在从互联网上获取实时价格。
目前我使用以下内容:
Sub my_onTime()
Application.OnTime Now + TimeValue("00:00:01"), "my_Procedure"
End Sub
Sub my_Procedure()
With Sheets("record")
rw = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Range(.Cells(rw, 1), .Cells(rw, 2)).Value = Sheets("datafeed").Range("a2:b2").Value
End With
ThisWorkbook.RefreshAll
my_onTime
End Sub
目前记录来自" datafeed"的价格在"记录"中的行。
另一个问题是记录了来自" datafeed"的一个单元格;细胞B2。我不知道如何设置它,所以它将记录从B2:B400
的单元格范围内的所有价格我的愿望是Excel会将价格变化记录到"记录"将表格分成不是行的列。
"图形"显示我想要的东西:
Sheet1 - " datafeed" ...... B2 = 155 ............第2页 - "记录"细胞:F2 = 155 ..... G2 = 150 ..... H2 - 145 ..... I2 - 140,......等等
Sheet1 - " datafeed" ...... B3 = 66 .............第2页 - "记录"细胞:F3 = 66 ...... G3 = 67 ...... H3 - 66 ...... I3 - 65,......等等
Sheet1 - " datafeed" ...... B4 = 1015 .............第2页 - "记录"细胞:F4 = 1015 ...... G4 = 1025 .... H4 - 1035 ...... I4 - 1045,......等等
最后记录的价格也必须放在第一栏第2页 - "记录&#34 ;; cells:,F2,F3,F4 .......(现在最后记录的值放在最后一行)
非常感谢任何帮助。
谢谢!
P.S
我添加了3张图片以供澄清
答案 0 :(得分:0)
替换你程序的这一部分
With Sheets("record")
rw = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Range(.Cells(rw, 1), .Cells(rw, 2)).Value = Sheets("datafeed").Range("a2:b2").Value
End With
用这个
With Sheets("record")
rw = .Cells(.Rows.Count, 5).End(xlUp).Row + 1
.Cells(rw, 5).Value = Sheets("datafeed").Cells(2, 1).Value 'write name from column A
iColumn = 6 'set you want to start in column F with prices
For iRow = Sheets("datafeed").Cells(Sheets("datafeed").Rows.Count, 1).End(xlUp).Row To 2 Step -1
.Cells(rw, iColumn).Value = Sheets("datafeed").Cells(iRow, 2).Value
iColumn = iColumn + 1
Next iRow
End With
如果您希望将新行添加到第一行而不是最后一行
With Sheets("record")
iColumn = 6 'set you want to start in column F with prices
iRecordRow = 3 'set to what row number to put the current price
.Rows(iRecordRow & ":" & iRecordRow).Insert Shift:=xlDown
For iRow = Sheets("datafeed").Cells(Sheets("datafeed").Rows.Count, 1).End(xlUp).Row To 2 Step -1
.Cells(iRecordRow, iColumn).Value = Sheets("datafeed").Cells(iRow, 2).Value
iColumn = iColumn + 1
Next iRow
.Cells(iRecordRow, 5).Value = Sheets("datafeed").Cells(2, 1).Value 'write name from column A
End With
如果您希望将其添加到3行以外的其他行,只需更改iRecordRow = 3