从一个工作表中获取数据并根据两个单元格是否具有相同值将其输入另一个工作表

时间:2017-11-13 23:24:17

标签: excel vba excel-vba

我正在尝试使用此宏来检查标题为" Model"的工作表中的团队名称,然后签入标题为" OffensiveStatsPerGame"的工作表。如果这两个具有相同的名称,它会在标题为" Model"的工作表中输入一个值。这是首次检查的团队名称列中的一列。我希望它输入的值是" OffensiveStatsPerGame"工作表6列从其检查以查看团队名称是否匹配。

Sub findThreePointAttempted()

Dim x As Integer, z As Integer, i As Variant, j As Integer, ThreePointAttempts As Integer, toadd As Boolean

Worksheets("OffensiveStatsPerGame").Activate
x = Application.WorksheetFunction.CountA(Range("A1").EntireColumn)

Worksheets("Model").Activate
b = Application.WorksheetFunction.CountA(Range("A1").EntireColumn)


For i = 1 To b
    For j = 1 To x
        If Model.Cells(i, 0) = OffensiveStatsPerGame.Cells(j, 1) Then
            toadd = True
                If toadd = True Then
                    Worksheets("OffensiveStatsPerGame").Activate
                    ThreePointAttempts = OffensiveStatsPerGame.Cells(j, 1).Offset(0, 6)
                    Worksheets("Model").Activate
                    Model.Cells(i, 1) = ThreePointAttempts
                Else
                End If
        Else
        End If
    Next j
Next i

End Sub

上面的代码给了我一个

  

运行时错误424:需要对象

1 个答案:

答案 0 :(得分:0)

你没有设置"模型"任何事情。因为你正在激活你的"模型"表格,然后你不需要调用该对象。

此外,Cells(i, 0)不存在,因为列的最低编号是1.您需要将该编号更改​​为要将值进行比较的列编号。

Sub findThreePointAttempted()

Dim x As Integer, i As Integer, b as Integer, j As Integer, ThreePointAttempts As Integer

Worksheets("OffensiveStatsPerGame").Activate
x = Application.WorksheetFunction.CountA(Range("A1").EntireColumn)

Worksheets("Model").Activate
b = Application.WorksheetFunction.CountA(Range("A1").EntireColumn)

For i = 1 To b
    For j = 1 To x
        ThreePointAttempts = Worksheets("OffensiveStatsPerGame").Cells(j, 1)
        If Cells(i, [change this value]) = ThreePointAttempts Then
             Cells(i, 1) = ThreePointAttempts
        Else
        End If
    Next j
Next i

End Sub