我相信,如果我可以正确声明测试名称,该代码将起作用。它应该是原始工作表上的单元格E2。如果我输入“ E2”,它可以工作,但是测试名不会增加。
我也尝试过Range。看不到我在做什么错。
Sub findcomponents()
Dim raw As Worksheet: Set raw = ThisWorkbook.Sheets("rawdata")
Dim res As Worksheet: Set res = ThisWorkbook.Sheets("resultcomponents")
Dim temp As Worksheet: Set temp = ThisWorkbook.Sheets("uploadtemplate")
Dim testname As String
Dim LR1 As Long, LR2 As Long, i As Long, j As Long
LR1 = raw.Range("A" & raw.Rows.Count).End(xlUp).Row
LR2 = res.Range("A" & res.Rows.Count).End(xlUp).Row
testname = raw.Cells(j, 5)
For j = 2 To LR1
For i = 2 To LR2
If res.Cells(i, 4) = testname Then
res.Range(res.Cells(i, 2), res.Cells(i, 4)).Copy
temp.Range("B10000").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
raw.Range(raw.Cells(j, 3), raw.Cells(j, 3)).Copy
temp.Range("A10000").End(xlUp).Offset(1, 0).PasteSpecial
xlPasteValues
End If
Next i
Next j
End Sub
代码应在一系列测试中进行测试,并在单独的工作表上与测试组件进行比较-将标本ID和组件ID以及说明粘贴到第三张纸上
答案 0 :(得分:1)
j
在使用时未填充。您需要以数字值开头j
或将此行添加到循环中