2013-03-11 54 views
1

我有以下問題: 我想嘗試不同的值說A1單元格。每次我將該值輸入A1時,單元格B1,C1,D1和E1都會改變。有沒有什麼辦法可以創建一個新的表格來自動將這些迭代的結果複製到不同的單元格中。例如: 我選擇A1 = 10.這會自動出現在A3處。 B1,C1,D1和E1的所有值然後自動存儲在B3,C3,D3和E3中。然後我改變A1 = 20。B1,C1,D1和E1的所有新值現在存儲在B4,C4,D4和E4。EXCEL如何將每個迭代結果複製到單獨的表中?

有關如何做到這一點的任何建議? 謝謝你的時間!

回答

1

將此代碼放在sh使用Worksheet_Change模塊,每次對單元格A1進行更改時,結果將從第3行開始向下添加。

Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim i As Integer 
    i = 3 

    'If there is a change to A1 
    If Target.Address = ActiveSheet.Range("A1").Address Then 
     Do Until ActiveSheet.Cells(i, 1).Value = vbNullString 
      i = i + 1 
     Loop 

     ActiveSheet.Cells(i, 1).Resize(, 5).Value = ActiveSheet.Range("A1:E1").Value 
    End If 
End Sub 
+1

我縮短了一下你的代碼,希望你不介意。此外,不要循環遍歷單元格,直到找到vbNullString爲止,只需使用'.End'屬性,就像Roro在其答案中所示的那樣! – 2013-03-12 09:10:42

0
  1. 如果A1變化,電池B1,C1,D1和E1的變化,這可以通過ussually代碼
  2. 自動添加新行解決,你可以用這個宏
Sub Macro4() 
' 
' Macro4 Macro 
' 
' Keyboard Shortcut: Ctrl+t 
' 
Range("A1:E1").Select 
Selection.Copy 
Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0).Select 
ActiveSheet.Paste 
End Sub 

要使用該宏,您只需按ctrl + t,(鍵盤快捷方式取決於您)

相關問題