Excel - 记录单元格值,将它们转换为列并复制动态更改的单元格

时间:2018-03-27 18:19:53

标签: excel

英语不是我的第一语言,所以我希望你能理解我

因为我对编程一无所知我正在向你寻求帮助: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张图片以供澄清

1. sheet datafeed

2. sheet record

3. what i wish for sheet record

1 个答案:

答案 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

中的数字