VBA-Excel Vlookup - >对象'_Worksheet'的方法'Range'失败

时间:2017-06-15 18:44:55

标签: excel vba excel-vba

我希望你能给我一些提示。我最近完成了这项任务,以纠正连续的细胞,例如:

Contact: Address 1
-------------------
16, Shota Rustaveli
241 Mukanov Street
241 Mukaov Street
241 Mukaov Street
241 Mukaov Street
241 Mukaov Street
241 Mukaov Street
241 Muknov Street
3, rue Rene Cassin
3, rue Rene Cassin
9th Floor, South To
AddressLine1
Baribaev str. 31
Danubius utca 16.
Fő út 197.
Homokbánya köz 10.
Mikulandská 122/4
Mikulanská 122/4

所以,主要的想法是如果有一个字符(特殊字符2)缺少它应该添加。所以我做的是使用Vlookup函数查找每个单元格的下一个单元格,如果它们类似于纠正第二个单元格,如果不是要跳过它。

Private Sub AddressCorrection()

Dim AddCorr As Variant
Dim i As Integer
Dim j As Integer
Dim k As Integer

Dim AddLookup As Variant
Dim wksSource As Worksheet

Set wksSource = ActiveWorkbook.Sheets("Sheet1")
With wksSource
For i = 3 To 20
k = i + 1
j = i + 1
AddLookup = wksSource.Range("AQ" & i).Value
    'Check if it is in the same company
    If wksSource.Range("A" & i).Value = wksSource.Range("A" & j).Value Then
    On Error Resume Next
        If IsError(Application.WorksheetFunction.VLookup(AddLookup, wksSource.Range("AQ" & j), 1, True)) Then
        GoTo EndLine
        Else
           AddCorr = Application.WorksheetFunction.VLookup(AddLookup, wksSource.Range("AQ" & k), 1, True)
                   If AddCorr = wksSource.Range("AR" & i).Value Then
                       'Do nothing
                   Else
                       wksSource.Range("AQ" & j).Value = wksSource.Range("AQ" & i).Value
                   End If
        End If
    Else
        GoTo EndLine
    End If
EndLine:
'End of loop
Next i
End With
End Sub

主要的问题是,正如我想要的那样,一半的物品正常工作......但另一半是:

Application.WorksheetFunction.VLookup(AddLookup, wksSource.Range("AQ" & j), 1, True)

给我对象'_Worksheet'的方法'范围'失败

有时我甚至没有得到它想要的错误,并且在对Sheet本身进行一些更改之后,它给了我同样的错误。

我不确定我是否正在解决Sheet错误或某些对象,甚至可能我还没有完全理解Vlookup功能。

提前致谢:)。

0 个答案:

没有答案