[英]Auto populate multiple columns in separate sheet in excel
我想自动将多个列从一个 excel 工作表填充到同一个工作表中的另一个工作表。 我用过 ='Sheet1',A1。 但这让我每次在Sheet1中输入新内容时都会将其拖下来? 是否可以使用 VBA 自动填充从 Sheet1 到 Sheet2 的单元格?
Sheet1
。dstName
(目标工作表名称)和ColsAddress
(源工作表列地址)的值。编码
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Const ProcName As String = "Worksheet_Change"
On Error GoTo clearError
Const dstName As String = "Sheet2"
Const ColsAddress As String = "A:H"
Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets(dstName)
Dim rng As Range: Set rng = Intersect(Target, Columns(ColsAddress))
If rng Is Nothing Then Exit Sub
'Application.EnableEvents = False
assignSameRangeValues rng, ws
'Application.EnableEvents = True
ProcExit:
Exit Sub
clearError:
Debug.Print "'" & ProcName & "': Unexpected Error!" & vbLf _
& " " & "Run-time error '" & Err.Number & "':" & vbLf _
& " " & Err.Description
Resume ProcExit
End Sub
Sub assignSameRangeValues( _
rng As Range, _
dst As Worksheet)
Const ProcName As String = "assignSameRangeValues"
On Error GoTo clearError
If rng Is Nothing Then Exit Sub
If dst Is Nothing Then Exit Sub
Dim aRng As Range
Application.ScreenUpdating = False
For Each aRng In rng.Areas
dst.Range(aRng.Address).Value = aRng.Value
Next aRng
Application.ScreenUpdating = True
ProcExit:
Exit Sub
clearError:
Debug.Print "'" & ProcName & "': Unexpected Error!" & vbLf _
& " " & "Run-time error '" & Err.Number & "':" & vbLf _
& " " & Err.Description
Resume ProcExit
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.