Excel 如何在字典宏中添加step函数

Excel 如何在字典宏中添加step函数,excel,duplicate-removal,vba,Excel,Duplicate Removal,Vba,我是VBA新手,我一直在使用本网站的巨大帮助,创建一个宏,从一张图纸(第14页)中获取数字列表,删除重复项并粘贴到另一张图纸(第2页)中 我希望通过将列表粘贴到其他行,即D10、D12、D14等,而不是一个接一个地粘贴单元格,从而进一步实现这一点 我在这个网站上尝试了各种方法,但是都没有用。我使用了不同类型的“Step”函数,但我很难将其纳入下面的编码中 非常感谢您的帮助 以下是我目前的情况: Sub RUN() Application.ScreenUpdating = False

我是VBA新手,我一直在使用本网站的巨大帮助,创建一个宏,从一张图纸(第14页)中获取数字列表,删除重复项并粘贴到另一张图纸(第2页)中

我希望通过将列表粘贴到其他行,即D10、D12、D14等,而不是一个接一个地粘贴单元格,从而进一步实现这一点

我在这个网站上尝试了各种方法,但是都没有用。我使用了不同类型的“Step”函数,但我很难将其纳入下面的编码中

非常感谢您的帮助

以下是我目前的情况:

Sub RUN()

    Application.ScreenUpdating = False
    Dim lastRow As Long
    Dim i As Long
    Dim dictionary As Object
    Set dictionary = CreateObject("scripting.dictionary")

    Sheet14.Activate
    lastRow = Sheet14.Cells(Rows.Count, "F").End(xlUp).Row

    On Error Resume Next
    For i = 3 To lastRow
    If Len(Cells(i, "F")) <> 0 Then
        dictionary.Add Cells(i, "F").Value, 1
    End If
Next

    Sheet2.Range("d10").Resize(dictionary.Count).Value = _
    Application.Transpose(dictionary.keys)

    Application.ScreenUpdating = True
    MsgBox dictionary.Count & " RUN TEMPLATES."

End Sub
子运行()
Application.ScreenUpdating=False
最后一排一样长
我想我会坚持多久
作为对象的Dim字典
Set dictionary=CreateObject(“scripting.dictionary”)
14.激活
lastRow=Sheet14.单元格(Rows.Count,“F”).结束(xlUp).行
出错时继续下一步
对于i=3到最后一行
如果Len(单元格(i,“F”))为0,则
字典。添加单元格(i,“F”)。值,1
如果结束
下一个
Sheet2.范围(“d10”).调整大小(dictionary.Count).值=_
应用程序.转置(字典.键)
Application.ScreenUpdating=True
MsgBox dictionary.Count&“运行模板”
端接头
这里有一种方法(顺便说一句,我不会称之为宏运行):

子列表uniques()
最后一排一样长
我想我会坚持多久
作为对象的Dim字典
调暗键
Application.ScreenUpdating=False
Set dictionary=CreateObject(“scripting.dictionary”)
附页14
lastRow=.Cells(.Rows.Count,“F”).End(xlUp).Row
对于i=3到最后一行
如果Len(.Cells(i,“F”))为0,则
字典(.Cells(i,“F”)。值=1
如果结束
下一个
以
vKeys=dictionary.keys
对于i=LBound(vKeys)到UBound(vKeys)
表2.范围(“d10”)。偏移量(2*i)。值=vKeys(i)
接下来我
Application.ScreenUpdating=True
MsgBox dictionary.Count&“运行模板”
端接头

Rory-谢谢你,真是太棒了!我花了一个星期的时间想弄明白这一点!
Sub ListUniques()

    Dim lastRow               As Long
    Dim i                     As Long
    Dim dictionary            As Object
    Dim vKeys

    Application.ScreenUpdating = False

    Set dictionary = CreateObject("scripting.dictionary")

    With Sheet14

    lastRow = .Cells(.Rows.Count, "F").End(xlUp).Row

    For i = 3 To lastRow
        If Len(.Cells(i, "F")) <> 0 Then
            dictionary(.Cells(i, "F").Value) = 1
        End If
    Next
    End With

    vKeys = dictionary.keys
    For i = LBound(vKeys) To UBound(vKeys)
        Sheet2.Range("d10").Offset(2 * i).Value = vKeys(i)
    Next i
    Application.ScreenUpdating = True
    MsgBox dictionary.Count & " RUN TEMPLATES."

End Sub