excel - 基于单元格值的行数(循环复制)
问题描述
在 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
在这里我收到错误 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
它有效,但该行只复制一次。我想让它作为 Frontshet.D15 单元格中的状态复制 41 次。我怎样才能做到这一点?
解决方案
因为您要粘贴的目的地始终是 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)
推荐阅读
- android - Recycler View 不一致地显示/不显示数据
- java - 实时分析和情绪分析
- angular - BootStrap 未在网站上呈现。错误 404
- amazon-web-services - 在控制台中添加的 AWS Cognito 用户收到 502 错误
- python - 使用 python 绑定在“Trace Compass”中生成表现良好的跟踪
- javascript - 使用 ssh 密钥和服务器名称通过 nodejs 代码连接 ssh 服务器
- ruby-on-rails - Rails 站点地图生成器显示错误的索引
- javascript - Quasar-Framework 中 Vue 组件中的 jQuery 函数
- java - 如果使用@Autowired + @Qualifier 注入,如何避免在重构期间更改 bean 名称
- sh - 如何从目录中的一堆文件中删除长文件名中的一些文本