我一直在努力解决这一问题,但到目前为止还没有成功。该代码有效,但是不幸的是,它以意外的方式工作。
MACRO工作簿是主工作簿,“数据”表上包含所有数据字段。 LEAN工作簿包含某些数据点,我想将这些数据点复制并粘贴到MACRO工作簿中“数据”表上的命名范围中,直到最后一行。
例如:
宏工作簿具有以下列:
sublimeREPL
精益工作簿具有以下列:
Eng # Eng Name Date Started Date Completed KPI1 KPI2
100 ABC 12/01/2018 12/10/2018 50 100
目标有两个:
我尝试下面的代码:
Eng # Date Started Date Completed KPI# Score
101 12/02/2018 12/03/2018 1 50
101 12/02/2018 12/03/2018 2 10
102 11/01/2018 11/20/2018 1 100
102 11/01/2018 11/20/2018 4 100
我想跳过1002的测试Eng#,所以我输入了该条件。
答案 0 :(得分:0)
我要收集的是从leanrange
中的每个单元格及其相邻列中获取值,并将其插入到宏工作簿中相应标题下的表中。
我认为这里有两个问题:
这是我的建议:由于每个循环都使用a,因此使用cell
对象循环遍历范围内的所有单元格,而不要使用offset。然后,您需要偏移宏工作簿中的行,否则,您将一次又一次地粘贴到同一行。这就是为什么标题被覆盖的原因。您可以使用第二个循环来偏移cell
,以便可以循环浏览leanrange
中的每一列。最后,由于看起来您的范围“ Enum”,“ ds”,“ dc”等都是相邻的列,因此我通过使用j来抵消宏工作簿中的列来简化了事情。
Dim i As Integer
Dim j As Integer
Dim cell As Range
i = 1
For Each cell In leanrange
If leanrange.Range("A2") <> "E1002" Then
For j = 0 To 3
wsmacro.Range("Enum").Offset(i, j) = cell.Offset(0, j).Value
Next j
i = i + 1
End If
Next cell