Board logo

標題: 如何讓最新的資料都寫在上面?? [打印本頁]

作者: 藍天麗池    時間: 2015-12-27 19:00     標題: 如何讓最新的資料都寫在上面??

[attach]22992[/attach]
Sub RecordPrice()
Dim WR As Long
Dim I As Long

WR = Range("A1").End(xlDown).Row + 1
[A2] = TimeValue(Now)
For I = 1 To 8
   Cells(WR, I) = Cells(2, I)
Next 'I
With ActiveWindow
        If Intersect(Cells(WR, "B"), .VisibleRange) Is Nothing Then .SmallScroll 1
    End With
End Sub

程式碼如上,目前是最新資料會往下寫,如果我要改成最新的資料都出現在A3欄(就是往上寫)這邊WR = Range("A1").End(xlDown).Row + 1要怎麼改??
作者: koo    時間: 2015-12-27 19:31

要都在A3輸入資料就必須寫入資料前插入一列
Rows(3).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
[A2] = TimeValue(Now)
For I = 1 To 8
   Cells(3, I) = Cells(2, I)
Next 'I
作者: c_c_lai    時間: 2015-12-28 07:46

本帖最後由 c_c_lai 於 2015-12-28 07:48 編輯

回復 1# 藍天麗池
請參考:
  1.     Application.ScreenUpdating = False
  2.    
  3.     With Sheets("RTD")
  4.         .Rows(3).Insert
  5.         .[A3].Resize(1, 8) = .[A2].Resize(1, 8).Value
  6.     End With
  7.     Application.ScreenUpdating = True
複製代碼

作者: 藍天麗池    時間: 2015-12-28 14:02

回復 2# koo


    K大我上次少貼了一些程式碼,如果還要加上G2有變動才紀錄的條件要如何修改??

WR = Range("A1").End(xlDown).Row + 1
'ActiveWindow.ScrollRow = WR - 5 '只顯示最新幾筆資料
If (WR = 3) Or _
   (Range("G" & WR - 1) <> Range("G2")) Then '總量有異動時才記錄
   For I = 1 To 8
      Cells(WR, I) = Cells(2, I)
   Next 'I
作者: 藍天麗池    時間: 2015-12-28 14:11

本帖最後由 藍天麗池 於 2015-12-28 14:23 編輯

回復 3# c_c_lai


    C大可以告訴我這些程式碼要貼在哪裡,還有那些地方要修改嗎??
另外,之前有些程式碼沒貼到,抱歉
裡面還有G2變動才紀錄的條件

Sub RecordPrice()
Dim WR As Long
Dim I As Byte

If Range("H2") < 1 Then Exit Sub



WR = Range("A1").End(xlDown).Row + 1
'ActiveWindow.ScrollRow = WR - 5 '只顯示最新幾筆資料
If (WR = 3) Or _
   (Range("G" & WR - 1) <> Range("G2")) Then '總量有異動時才記錄
   For I = 1 To 8
      Cells(WR, I) = Cells(2, I)
   Next 'I
End If
Application.ScreenUpdating = False
    With Sheets("RTD")
        .Rows(3).Insert
        .[A3].Resize(1, 8) = .[A2].Resize(1, 8).Value
    End With
    Application.ScreenUpdating = True
End Sub
作者: c_c_lai    時間: 2015-12-28 19:18

本帖最後由 c_c_lai 於 2015-12-28 19:20 編輯

回復 5# 藍天麗池
  1. Sub RecordPrice()
  2.     Dim WR As Long

  3.     '  ActiveWindow.ScrollRow = WR - 5 '  只顯示最新幾筆資料
  4.     Application.ScreenUpdating = False

  5.     With Sheets("RTD")
  6.         If .Range("H2") < 1 Then Exit Sub

  7.         WR = Range("A1").End(xlDown).Row + 1
  8.         If (WR = 3) Or _
  9.                 (.Range("G" & WR - 1) <> .Range("G2")) Then  ' 總量有異動時才記錄
  10.             .Rows(3).Insert
  11.             .[A3].Resize(1, 8) = .[A2].Resize(1, 8).Value
  12.             .[A3].Resize(1, 8).Font.FontStyle = "粗體"
  13.         End If
  14.     End With

  15.     Application.ScreenUpdating = True
  16. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)