我很多年沒有編碼,所以生病時盡我最大的努力來溝通我的目標。根據單元格輸入將行信息從一個表格複製到另一個表格
我有一個主表單,其中包含許多項目列表(在他們自己的單元格中列出),同樣也有自己的編號表。此主人信息與行中的所有其他項目有關,在適當的單元格下選中時,會將該行信息複製到適用項目表中的下一個可用行。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim nextrow As Long, lastrow As Long, i As Long
nextrow = Sheet1.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet5.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet4.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet6.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet7.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet8.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet9.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet10.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet11.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet12.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet13.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet14.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet15.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet16.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet17.Cells(Rows.Count, "A").End(xlUp).Row + 1
lastrow = Sheet3.Cells(Rows.Count, "A").End(xlUp).Row + 1
If Target.Cells.Count > 1 Then Exit Sub
Application.ScreenUpdating = False
If Not Intersect(Target, Range("C5:C" & lastrow)) Is Nothing Then
If Target <> vbNullString Then
i = Target.Row
Range("A" & i & ":B" & i).Copy Destination:=Sheet1.Range("A" & nextrow)
End If
End If
這以前被重複6行的代碼對每個片材數量,直到它到達最後的片材(片材17和細胞Q),然後那裏有所述:
Application.ScreenUpdating = True
end Sub
這工作,但是,當它複製信息時,它會替換現有信息,而不是將其放置在下一個可用行中。這種情況除了最後的項目表是什麼外。最後一張紙按預期工作。
這只是你** **覆蓋'nextrow '在你開始做的每一次計算中,所以你只能在事實上有這個'nextrow = Sheet17.Cells(Rows.Count,「A」).End(xlUp).Row + 1'。 – R3uK
你爲什麼這麼多次設置'nextrow'?實際上,nextrow唯一的值是Sheet17.Cells(Rows.Count,「A」)。End(xlUp).Row + 1',因爲這是最後一次調用。因此,當您粘貼到表單1中的下一個可用範圍時,它將基於該表單17。 (你可以從字面上刪除前14個左右的'nextrow = ...',並且會出現相同的結果)。 – BruceWayne