excel - VBA Excel循环用于复制多个表并更改字符串
问题描述
早上好,
我想开发一个循环,这将使我能够根据单元格值复制和粘贴大量表格。
如您所见,我将值设置为 3,并且已填充 3 个表(最小值为第一,这意味着始终保留 1 个表)。带有数字的字符串也已相应更改。
一切都会好的,但这个过程是手动的。我需要它作为一个循环。到目前为止我开发的是循环,它不能正常工作。我只为单元格“B43”获取所有副本。我需要这些副本每 13 步填充一次。如果第二列的范围从 B43 开始,另一列的范围应该从“B56”、“B69”、“B82”等开始。
Sub CopyCabinet()
Dim i As Integer
Dim rg As Range, rg2 As Range, rg3 As Range
Dim wr As Worksheet
Set wr = Sheets("NIM & BADGER")
Set rg = wr.Range("R27")
Set rg2 = wr.Range("B30:W41")
Set rg3 = wr.Range("C31")
For i = 1 To rg Step 2
With rg3
.Value = "Level 4 Cabinet Details: Cabinet " & i + 1
End With
rg2.Copy _
Destination:=wr.Range("D43")
Next I
End Sub
字符串也没有正确更改。
有什么办法可以解决吗?我在这里找到了一些合理的提示: 在 VBA Excel 中为多个输出复制和粘贴循环, 这意味着我必须设置新的范围,在其中重定向我的输入。我说的对吗?
解决方案
你的推理有点在这里。如果您更改了一个值,然后将旧值复制/粘贴回它上面会怎样?眼睛真的什么也没发生。另外,如果将其复制B30:W41
并粘贴到 D 列会怎样?它会变得不稳定。
因此,假设您想将手头的特定范围复制 x 次,您可以将代码重写为:
Sub CopyCabinet()
Dim i As Long
Dim rg As Range, rg2 As Range, rg3 As Range
Dim wr As Worksheet
Set wr = ThisWorkbook.Worksheets("NIM & BADGER")
With wr
Set rg = .Range("R27")
Set rg2 = .Range("B30:W41")
Set rg3 = .Range("C31")
For i = 1 To rg.Value - 1
rg2.Copy .Range("B30").Offset(13 * i)
.rg3.Offset(13 * i).Value = "Level 4 Cabinet Details: Cabinet " & i + 1
Next
End With
End Sub
你仍然应该认识到你想要的结构,但是我想我在这里为你简化了一点。显然,我无法对此进行测试,因此如果这对您有用或者这里是否有任何问题,请报告。
推荐阅读
- r - 在 R markdown 中编织到 PDF 时,静态传单地图标记被切断
- javascript - 如何制作滑动文字效果(文字逐渐进入)?
- c - C中的优化
- r - 估计“R”中混合效应逻辑回归中的风险比而不是优势比
- elasticsearch - 如何在弹性搜索中获得同义词匹配的自动建议
- ubuntu - 创建我当前机器/设置的 VDI
- java - ReentrantLock 和 Condition 中处于等待状态的线程如何维护和区别?
- micropython - 使用带有伺服电机的 bbc-microbit v2 时出错
- javascript - jquery与angularjs冲突
- c - 我正在尝试让我的 printf 从我的 Char 内部进行格式化