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