excel - 如何使用带有重复宏的循环?
问题描述
我有大约 3 个又长又重复的宏。我似乎无法弄清楚用于使这更容易的循环语法。有任何想法吗?
宏 1
Range("A6:L6").Copy
Range("D3:O3").PasteSpecial Paste:=xlPasteValues
Range("A10:L10").Copy
Range("D4:O4").PasteSpecial Paste:=xlPasteValues
Range("A14:L14").Copy
Range("D5:O5").PasteSpecial Paste:=xlPasteValues
Range("A18:L18").Copy
Range("D6:O6").PasteSpecial Paste:=xlPasteValues
宏 2
Range("A7").Copy
Range("A4").PasteSpecial Paste:=xlPasteValues
Range("A11").Copy
Range("A5").PasteSpecial Paste:=xlPasteValues
Range("A15").Copy
Range("A6").PasteSpecial Paste:=xlPasteValues
Range("A19").Copy
Range("A7").PasteSpecial Paste:=xlPasteValues
宏 3
Range("B4").Copy
Range("B3").PasteSpecial Paste:=xlPasteValues
Range("B8").Copy
Range("B4").PasteSpecial Paste:=xlPasteValues
Range("B12").Copy
Range("B5").PasteSpecial Paste:=xlPasteValues
解决方案
你可以这样做:
Dim rngCopy As Range, rngPaste As Range, n as long
With ActiveSheet
Set rngCopy = .Range("A6:L6")
Set rngPaste = .Range("D3")
End With
For n = 1 to 4
rngPaste.Resize(rngCopy.Rows.Count, rngCopy.Columns.Count).Value = rngCopy.Value
Set rngCopy = rngCopy.Offset(4, 0)
Set rngPaste = rngPaste.Offset(1, 0)
Next n
请注意,如果您只需要复制值,您可以直接分配它们而无需复制/粘贴步骤。
推荐阅读
- ansible - Ansible:如何在循环时打印变量名称?
- asp.net-core - ASP.NET Core:在当前页面中显示异常消息的全局处理
- c++ - 代码块编译错误。Cin 未在此范围内声明
- rust - serde:加速自定义枚举反序列化
- java - 如何将我从文件中读取的数据放入哈希图
>? - excel - 如何处理 hasDatepicker 类 - IE 自动化
- python - 为什么 while 循环在此代码中不起作用?
- excel - 如何为客户服务主管生成活动地图?
- java - 如何消除android按钮的延迟?
- python - 由于 Appium 中的 JSON 代理错误,无法找到该元素