我嘗試創建一個我每天更新的專案管理資料庫。
到目前為止,我所做的作業是,如果 Sheet1 單元格 A1 中的值被更新,則單元格 A1 中的先前值將被復制到 Sheet2 C1。如果我再次更新 Sheet1 單元格 A1 中的值,它將再次復制到 Sheet2 C2,在上一個副本下方,依此類推。
我想對下一個單元格應用相同的代碼,例如,如果 Sheet1 A2 值被更新,它將被復制到 Sheet2 D1,并且如果 Sheet1 A2 值再次更改,它將被復制到上一個副本(Sheet2 D2)下方。
所以我的問題是,有什么方法可以簡化輸入單元格 A1、A2、A3.. 和輸出單元格 C1、D1、E1.. 的代碼,因為我知道復制粘貼和更改目標和目標地址是行不通的。下面是我的代碼,僅適用于 Sheet1 目標單元格 A1。我真的是 VBA 新手,所以任何回應都會很棒。
Private Sub worksheet_change(ByVal target As Range)
If target.Address = Range("A1").Address Then
Dim intLastRow As Long
intLastRow = Sheet2.Cells(Sheet1.Rows.Count, "C").End(xlUp).Row
Sheet2.Cells(intLastRow 1, "C") = target.Value
End If
End Sub
uj5u.com熱心網友回復:
測驗更改是否發生在第 1 行,然后獲取列并使用它而不是硬編碼的“C”。
Private Sub worksheet_change(ByVal target As Range)
If target.Row = 1 Then
Dim col As Long
Dim intlastrow As Long
col = target.Column 2 'Column to modify
intlastrow = Sheet2.Cells(Rows.Count, col).End(xlUp).Row
If intlastrow = 1 Then 'Populate Row 1 or increment
If Sheet2.Cells(intlastrow, col).Value <> "" Then
intlastrow = intlastrow 1
End If
else
intlastrow = intlastrow 1
End If
Sheet2.Cells(intlastrow, col) = target.Value
End If
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/380365.html
