首页 > 解决方案 > 错误地声明变体以指定单个单元格

问题描述

如果我可以正确声明测试名称,我相信代码可以工作。它应该是原始工作表上的单元格 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 以及描述粘贴到第三张工作表上

标签: excelvba

解决方案


j使用时未填充。您需要从j数值开始或将此行添加到循环中


推荐阅读