2016-05-12 60 views
0

是否可以寫入一個宏,以便在原始數據工作表的新行條目上填充不同工作表上的表單?用於從新行條目填充表單的最後一行(最後一行)

Macro to populate form from new row entry (last row)

+2

是的,它可以用VBA完成。這個問題還有別的嗎? – CallumDA

+2

(請閱讀[如何問](http://stackoverflow.com/help/how-to-ask))。 – BruceWayne

+0

謝謝你們的回覆,特別是如何在這個論壇上提出一個好問題的提示。特別是,因爲這是我的第一個。爲了解決你的問題@ CallumDA33,是的,我猜的問題還有更多。你能幫助VBA代碼嗎? –

回答

0

下面是拷貝最後編輯從Data片進入Form片的例子。把下面的代碼到Data工作表中您的VBA項目:

Option Explicit 

Private Sub Worksheet_Change(ByVal Target As Range) 

    Static objTargetCells As Object 
    Dim objTargetCell As Range 
    Dim strHeader As Variant 
    Dim objTargetSheet As Worksheet 
    Dim x As Long 

    Set objTargetSheet = Sheets("Form") 

    If objTargetCells Is Nothing Then 
     Set objTargetCells = CreateObject("Scripting.Dictionary") 
     x = 1 
     Do 
      strHeader = Target.Worksheet.Cells(1, x).Value 
      Set objTargetCell = objTargetSheet.Cells.Find(strHeader, , xlValues, xlWhole, xlByRows, xlNext, True, , False) 
      Set objTargetCells(strHeader) = objTargetCell.Offset(0, 1) 
      x = x + 1 
     Loop While Cells(1, x).Value <> "" 
    End If 

    With Target.Worksheet 
     If .Cells(1, Target.Column).Value <> "" And Target.Row <> 1 Then 
      x = 1 
      For Each strHeader In objTargetCells 
       objTargetCells(strHeader).Value = .Cells(Target.Row, x).Value 
       x = x + 1 
      Next 
      objTargetSheet.Cells.EntireColumn.AutoFit 
     End If 
    End With 

End Sub 

這裏是Data工作表的樣子:

Data

而且Form工作表:

Form

的代碼每運行Data表單更改事件。第一次在Data圖紙上創建表格字段字典時,將其填入Form圖紙上相應目標單元格的引用。這些單元格可通過.Find方法找到,但您可以手動使用您的範圍硬編碼。

相關問題