2017-10-15 17 views
0

我在項目中遇到了問題。我想將工作表(工作表1)的輸入數據存儲到另一工作表(工作表2)以保存我的事務歷史記錄。重要的是,在Sheet1中的每個輸入之後,它應該返回到空白單元格(Sheet1),以便可以在該特定單元格(Sheet1)中再次完成一個新條目。在這個過程中,我想定期將這些值存儲到Sheet2中,以便跟蹤歷史記錄。 我在VBA上嘗試過以下方法,但它不起作用。如何將數據從一個Excel界面(工作表1)存儲和更新到另一工作表(工作表2)以跟蹤交易歷史記錄?

Sub Master_Sheet_Record() 
If Sheet1.Range("D1") = "" Then 
MsgBox "OK" 
Else 
Sheet1.Range("D1").Copy 
Sheet2.Range("B2").PasteSpecial xlPasteValues 
End If 
End Sub 

我已經寫在模塊中。 代碼的粗線應該是這樣的,即在B2變爲B3以便它可以存儲Sheet1的下一個輸入的每個條目之後。

請確實回覆郵件並指導我如果可能的話。

+0

提示:代替'copy/paste',使用'Sheet2.Range(「B2」)。value = Sheet1。範圍(「D1」)' – jsotola

回答

2

如果你想要一個歷史,那麼你需要一個事件宏。

放置在Sheet1中碼區域如下:a值在Sheet1中細胞A1進入每次

Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim r As Range, r2 As Range 
    Set r = Range("A1") 
    If Intersect(r, Target) Is Nothing Then Exit Sub 
    Application.EnableEvents = False 
     If Sheets("Sheet2").Range("A1").Value = "" Then 
      r.Copy Sheets("Sheet2").Range("A1") 
     Else 
      N = Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row + 1 
      r.Copy Sheets("Sheet2").Cells(N, 1) 
     End If 
     r.Clear 
     r.Select 
    Application.EnableEvents = True 
End Sub 

,該值將被複制到歷史值的列表的底部在Sheet2ASheet1 cell A1被清除並重新選擇。

因爲它是工作表的代碼,這是非常容易安裝和自動使用:

  1. 右鍵單擊靠近Excel窗口底部的標籤名稱
  2. 選擇查看代碼 - 這帶來了一個VBE窗口
  3. 粘貼的東西並關閉VBE窗口

如果您有任何問題,首先嚐試在一個審判工作。

如果保存工作簿,宏將與其一起保存。 如果您正在使用一個版本的Excel更高然後2003,你必須保存 該文件作爲.XLSM而非的.xlsx

要刪除宏:

  1. 彈出窗口VBE如上
  2. 清晰的代碼進行
  3. 關閉VBE窗口

要了解更多有關事件宏(工作表的代碼),請參閱:

http://www.mvps.org/dmcritchie/excel/event.htm

+0

非常感謝您....它的工作原理。 –

+0

我可以將這段代碼用於多個單元嗎? @加里的學生 –

+0

@SOUVIKDAS是的.....你需要一個單獨的歷史專欄爲每個細胞被跟蹤? –

相關問題