【发布时间】:2020-10-10 16:07:31
【问题描述】:
循环遍历命名范围,如果单元格匹配,则它将调整大小的范围粘贴到不同的工作表中。我想为不同的范围使用一个循环,而不是为每个范围编写相同的代码。我考虑过使用数组,但我不知道如何处理 F 列中的数据(见下文)。
下面的代码行会将匹配的数据粘贴到与 A:D
列不同的工作表中cell.Offset(, -3).Resize(, 4).Copy Destination:= _
Sheets("CAR Issues").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
此行将值从命名范围粘贴到列 F。
Sheets("CAR Issues").Cells(Rows.Count, 1).End(xlUp).Offset(, 4).Value = Sheets("Boards").Range("UFFCAR").Value
是否可以让这个循环使用两个对应的数组,即
Unit = Array("UFF", "ERF", "DOF") < Data from column A:E
UM = Array("UFFCAR", "ERFCAR", "DOFCAR") Data in column F
完整代码
Sub Test()
Dim cell As Range
With Sheets("Boards")
For Each cell In .Range("UFF")
If cell.Value = "CAR" Then
cell.Offset(, -3).Resize(, 4).Copy Destination:= _
Sheets("CAR Issues").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Sheets("CAR Issues").Cells(Rows.Count, 1).End(xlUp).Offset(, 4).Value = Sheets("Boards").Range("UFFCAR").Value
End If
Next cell
End With
Call Test2
End Sub
Sub Test2()
Dim cell As Range
With Sheets("Boards")
For Each cell In .Range("ERF")
If cell.Value = "CAR" Then
cell.Offset(, -3).Resize(, 4).Copy Destination:= _
Sheets("CAR Issues").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Sheets("CAR Issues").Cells(Rows.Count, 1).End(xlUp).Offset(, 4).Value = Sheets("Boards").Range("ERFCAR").Value
End If
Next cell
End With
End Sub
【问题讨论】:
-
Unit数组元素是什么?讨论中的命名范围?如果是,UM数组呢?