excel - 我需要为唯一输出创建一个循环,将其复制到同一个工作表中的不同列
问题描述
我有以下代码:
Private Sub Unique_Click()
Dim xRng As Range
Dim xLastRow As Long
Dim xLastRow2 As Long
Dim i As Integer
On Error Resume Next
Set xRng = Worksheets("Data1").Range(Range("C15"))
If xRng Is Nothing Then Exit Sub
On Error Resume Next
xRng.Copy Range("B21")
xLastRow = xRng.Rows.Count + 1
ActiveSheet.Range("B21:B" & xLastRow).RemoveDuplicates Columns:=1, Header:=xlNo
Set xRng = Worksheets("Data2").Range(Range("O15"))
If xRng Is Nothing Then Exit Sub
On Error Resume Next
xRng.Copy Range("N21")
xLastRow = xRng.Rows.Count + 1
ActiveSheet.Range("N21:N" & xLastRow).RemoveDuplicates Columns:=1, Header:=xlNo
Set xRng = Worksheets("Data3").Range(Range("AA15"))
If xRng Is Nothing Then Exit Sub
On Error Resume Next
xRng.Copy Range("Z21")
xLastRow = xRng.Rows.Count + 1
ActiveSheet.Range("Z21:Z" & xLastRow).RemoveDuplicates Columns:=1, Header:=xlNo
End Sub
我需要循环这个。或者,我必须重复 31 次(一个月内最多天数)。输出列之间的空间始终相同。即B21、N21的区别;Z21等。
有什么建议么?否则,我将手动进行。
解决方案
也许这样的事情会有所帮助:
Private Sub Unique_Click()
Dim xRng As Range
Dim xLastRow As Long
Dim xLastRow2 As Long
Dim i As Integer
Dim colNo As Integer
On Error Resume Next
For colNo = 3 To 27 Step 12
Set xRng = Worksheets("Data1").Cells(15, colNo)
If xRng Is Nothing Then Exit Sub
xRng.Copy Cells(21, colNo - 1)
xLastRow = xRng.Rows.Count + 1
ActiveSheet.Range(Cells(21, colNo - 1), Cells(xLastRow, colNo - 1)).RemoveDuplicates Columns:=1, Header:=xlNo
Next colNo
End Sub
您只需要遍历 ColNo(步长 = 12,这意味着我们在每个循环中添加 12 列),从 C 列 (3) 开始,到 AA 列 (27) 结束。
我还建议添加工作表名称以xRng.Copy Cells(21, colNo - 1)
确保代码在正确的位置运行。
还有一个提示——你不需要使用On Error Resume Next
这么多次。它会一直保持活动状态,直到您使用 将其“关闭” On Error GoTo 0
。
希望能帮助到你。
推荐阅读
- .net - 根据存在的相关数据选择数据
- css - 复制加法混合的 CSS 混合模式
- javascript - 如何在不丢失“this”引用的情况下使用绑定?
- web-scraping - 用 scrapy 抓取 html 表并将数据合并到 mongodb
- docker - Docker swarm 容器无法连接
- java - Firebase:在我说之前不要向所有听众发送消息
- macos - 使用 JXA (macOS) 通过捆绑签名调用应用程序
- javascript - 如何将我的 express 服务器(使用 graphql)部署到 Heroku。目前卡在构建中
- azure-devops - 根据另一个字段或规则的值,揭开 Azure DevOps 中某个字段的允许值的神秘面纱?
- angular - 我如何以反应形式调用Angular中的函数