微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在一个代码块中循环遍历每个命名范围的第一行

如何解决在一个代码块中循环遍历每个命名范围的第一行

因此,我不得不编写两个几乎相同的代码块来遍历我的两个命名范围。但是,我知道命名范围的大小和形状将始终彼此相同,甚至始于同一列(不同的行),并且还需要将它们粘贴到彼此相邻的两列中,所以我觉得应该这样可以在一个代码块中实现,但甚至都无法考虑如何开始对其进行攻击。例如。每月现金支付在数组A10:D20中,损益支付每月在数组A40:D50中。

有人有任何想法吗,请谢谢你?


For Each Row In Range(Names("Cash_Payments_Monthly")).Rows

LastRow = wsDashData.Cells(Rows.Count,14).End(xlUp).Row

Row.copy

wsDashData.Range("n" & LastRow + 1).PasteSpecial _
Paste:=xlPasteValues,_
Transpose:=True

Next Row




For Each Row In Range(Names("PL_Payments_Monthly")).Rows

LastRow = wsDashData.Cells(Rows.Count,15).End(xlUp).Row

Row.copy

wsDashData.Range("o" & LastRow + 1).PasteSpecial _
Paste:=xlPasteValues,_
Transpose:=True

Next Row

解决方法

假设工作簿中还有其他命名范围,则应首先创建要搜索的命名范围白名单数组,然后遍历该数组,将现有代码的单个副本嵌入该循环中。

Dim myranges()
Dim c As Integer 'counter

myranges = Array("Cash_Payments_Monthly","PL_Payments_Monthly")


For c = 0 To UBound(myranges)
    For Each Row In Range(myranges(c)).Rows
    ...the rest of your code,but just one instance of it :-) ...
Next c

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。