首页 > 解决方案 > 运行 VBA 字符串以删除唯一重复项时出现运行时错误

问题描述

所以我最初询问如何根据区分大小写来删除唯一重复项(请参考下面的链接: Excel: Removing Duplicates Based On Case Sensitivity

最终我被引导到以下链接:

如何删除 Excel 中区分大小写的重复项(对于 10 万条或更多记录)?

这次我使用列 q 来测试公式,到目前为止,以下公式有效:

Sub duptest()

Sheets("Analysis").Select

Dim x, dict
Dim lr As Long
lr = Cells(Rows.Count, 1).End(xlUp).Row
x = Range("Q1:Q100000" & lr).Value
Set dict = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(x, 1)
    dict.Item(x(i, 1)) = ""
Next i
Range("Q1:Q100000" & lr).ClearContents
Range("Q1").Resize(dict.Count).Value = Application.Transpose(dict.keys)


End Sub

但是,我的问题是,我希望范围是整个 Q 列,但是在进行以下更改时:

Sub duptest()

Sheets("Analysis").Select

Dim x, dict
Dim lr As Long
lr = Cells(Rows.Count, 1).End(xlUp).Row
x = Range("Q:Q" & lr).Value
Set dict = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(x, 1)
    dict.Item(x(i, 1)) = ""
Next i
Range("Q:Q" & lr).ClearContents
Range("Q1").Resize(dict.Count).Value = Application.Transpose(dict.keys)


End Sub

我收到一条错误消息,指出“运行时错误'1004':对象'_Global'的方法'范围'失败

我以为我会很可爱并设置范围“Q1:Q1000000”,但我最终遇到了同样的错误。任何建议将不胜感激。我不希望这反映在整个工作簿或工作表上,我希望这仅发生在 Q 列中。

为新手问题道歉。

标签: excelvbaduplicates

解决方案


推荐阅读