Excel 复制发生';n';创建新工作簿的次数

Excel 复制发生';n';创建新工作簿的次数,excel,vba,copying,Excel,Vba,Copying,首先,非常感谢您创建了这样一个网站,它对像我这样开始使用VBA的人非常有帮助。 我正在尝试将我所做的手工工作自动化,这确实是一项耗时的工作。请帮我做这个。请求。详情如下: X Y ---- --- 2134 100 2134 200 2134 300 3456 400 3241 500 2516 600 2516 700 X1 Y1 ---- --- 2134 100 3456 400 3241 50

首先,非常感谢您创建了这样一个网站,它对像我这样开始使用VBA的人非常有帮助。 我正在尝试将我所做的手工工作自动化,这确实是一项耗时的工作。请帮我做这个。请求。详情如下:

X       Y
----    ---
2134    100
2134    200
2134    300
3456    400
3241    500
2516    600
2516    700
X1      Y1
----    ---
2134    100
3456    400
3241    500
2516    600
我有一张上面有“X”和“Y”列的表格。这是我的源代码表,我有数千个这样的值,这些行每天都被累加(动态)。我希望输出工作表位于
新工作簿>>新工作表中,其输出应如下所示:

X       Y
----    ---
2134    100
2134    200
2134    300
3456    400
3241    500
2516    600
2516    700
X1      Y1
----    ---
2134    100
3456    400
3241    500
2516    600
i、 例如,列“X”和“Y”的第一个实例。请帮助我获取VBA以自动执行此操作。我每天花4个小时来完成这项工作,因为我需要手动更新1000秒的数据


提前感谢

我相信这会满足您的需求:

Sub copyOver()
    Dim count As Integer
    count = Application.WorksheetFunction.CountA(Range("A:A"))
    Dim rowCount As Integer
    rowCount = 1
    Dim i As Integer
    i = 2
    Do While i <= count
        Dim str As String
        str = Range("A" & i)
        Dim find As String
        On Error GoTo copy:
        find = Application.WorksheetFunction.VLookup(str, Range("A1:A" & (i - 1)), 1, False)
        i = i + 1
    Loop
    Exit Sub
copy:
    If (Range("A" & i) = "") Then
        Resume Next
    End If
    Call copier(Range("A" & i), Range("B" & i), rowCount)
    rowCount = rowCount + 1
    Resume Next
End Sub

Sub copier(str1 As String, str2 As String, rowCount As Integer)
    Worksheets("Sheet2").Range("A" & rowCount) = str1
    Worksheets("Sheet2").Range("B" & rowCount) = str2
End Sub
Sub copyOver()
将计数设置为整数
count=Application.WorksheetFunction.CountA(范围(“A:A”))
将行计数设置为整数
行数=1
作为整数的Dim i
i=2

i时执行另一个选项是使用下面的选项从“数据”选项卡中选择“高级过滤器”


现在,您可以将结果复制并粘贴到新的工作表中,并清除过滤器

非常感谢。很好用…非常感谢你。这将节省我的工作时间。再次感谢。我还有一个要求,解释起来有点乏味。但我会找到一条出路,并在这里提出。你们太棒了:)嗨,威廉姆斯,我还有一个要求。这是在下面的链接:谢谢杰克。效果很好。但它只是在同一张纸上工作。它不是在创建新工作簿。但不管怎样,它在工作表中运行良好。我可以通过多行脚本将其复制到新工作表中。再次谢谢你,杰克。你们太棒了”)谢谢lori。我正在寻找VBA脚本,但无论如何,我会把你们的建议作为另一种做事的方式。非常感谢lori。。。