在单元格 D41 中,我有公寓的数量。现在,当我打开“地址列表”表时,我希望第一行立即复制 40 次(用红色标记)。我知道,它可以被描述为一个循环,这就是我尝试这段代码的原因:
Private Sub AddressList()
Dim i As Long
Dim rg As Range, rg2 As Range
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = ThisWorkbook.Sheets("Frontsheet")
Set ws2 = ThisWorkbook.Sheets("Address list")
Set rg = ws1.Range("D15").Value
For i = 1 To rg
Set rg2 = ws2.Range("B2:R2")
With rg2.Offset(i - 1, 0)
.Top = .Top
.Left = .Left
End With
Next I
End Sub
Run Code Online (Sandbox Code Playgroud)
在这里,我收到错误 424:需要对象
我尝试过的另一个代码是:
Sub AddressList()
Dim i As Long
Dim LastrowE As Long
Dim rng As Range
Dim rg As Range, rg2 As Range
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = ThisWorkbook.Sheets("Frontsheet")
Set ws2 = ThisWorkbook.Sheets("Fibre drop release sheet")
Set rg = ws1.Range("D32")
Set rg2 = ws2.Range("A2:k2")
For i = 1 To rg
With rg2.offset(i - 1, 0)
rg2.Copy _
Destination:=ws2.Range("A3")
End With
Next I
End Sub
Run Code Online (Sandbox Code Playgroud)
它有效,但该行仅复制一次。我想让它复制 41 次作为 Frontshet.D15 单元格中的状态。我怎样才能做到这一点?
因为您粘贴的目的地始终是 A3:Destination:=ws2.Range("A3")它始终粘贴在 A3 中(单元格 D15 次)。
以下将复制范围 A2:K2 并将其粘贴到 A3 和以下D15单元格中。
Set rg = ws1.Range("D15")
Set rg2 = ws2.Range("A2:K2")
rg2.Copy Destination:=ws2.Range("A3").Resize(RowSize:=rg.Value)
Run Code Online (Sandbox Code Playgroud)