Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 循环多次_Excel_Vba - Fatal编程技术网

Excel 循环多次

Excel 循环多次,excel,vba,Excel,Vba,我要做的是多次循环xlDown 我有这样的想法: For i=1 to 2000 1 x Selection.End(xlDown).Select then copy a range, then pasting it in another worksheet (i already have these functions) next 第二次迭代应该进行Selection.End(xlDown)。选择2次,第三次选择3次,依此类推 求你了,我被这件事难住了,我知道这很容易 提前感谢假设

我要做的是多次循环
xlDown

我有这样的想法:

For i=1 to 2000

   1 x Selection.End(xlDown).Select
then copy a range, then pasting it in another worksheet (i already have these functions)

next
第二次迭代应该进行
Selection.End(xlDown)。选择
2次,第三次选择3次,依此类推

求你了,我被这件事难住了,我知道这很容易


提前感谢

假设您有A2到A202的数据,并且数据中有三个缺口。还假设您知道数据没有下降到A250,并且A250和数据末尾之间没有任何内容

最好的方法是从底部使用
xlUp
一次,而不是多次使用
xlDown
。但两者都可以。这里有一个例子

Sub LoopDown()

    Dim rStart As Range
    Dim rEnd As Range
    Dim i As Long

    Set rStart = Sheet1.Range("A2")
    Set rEnd = rStart 'set it to rStart initially

    For i = 1 To 7 'go to # of gaps x 2 + 1 (3 x 2 + 1 = 7 for 3 gaps)
        Set rEnd = rEnd.End(xlDown) 'every time you do an
                                    'xlDown, you reset rEnd
    Next i

    'These are the same
    Debug.Print Range(rStart, rEnd).Address
    Debug.Print Range(rStart, Range("A250").End(xlUp)).Address

End Sub
还这个

$A$2:$A$202
$A$2:$A$202

假设您有A2到A202的数据,并且数据中有三个缺口。还假设您知道数据没有下降到A250,并且A250和数据末尾之间没有任何内容

最好的方法是从底部使用
xlUp
一次,而不是多次使用
xlDown
。但两者都可以。这里有一个例子

Sub LoopDown()

    Dim rStart As Range
    Dim rEnd As Range
    Dim i As Long

    Set rStart = Sheet1.Range("A2")
    Set rEnd = rStart 'set it to rStart initially

    For i = 1 To 7 'go to # of gaps x 2 + 1 (3 x 2 + 1 = 7 for 3 gaps)
        Set rEnd = rEnd.End(xlDown) 'every time you do an
                                    'xlDown, you reset rEnd
    Next i

    'These are the same
    Debug.Print Range(rStart, rEnd).Address
    Debug.Print Range(rStart, Range("A250").End(xlUp)).Address

End Sub
还这个

$A$2:$A$202
$A$2:$A$202

为什么要多次复制数据?一次还不够吗?不。我想多次批量复制大量数据,这些数据之间有一些漏洞。你只是想复制从某一行到最后一行的范围吗?您想同时复制“孔”还是只复制非空白行?xldown转到I11(第一行),然后宏向右移动8列,复制,向左移动8列,然后将该值粘贴到第一行最后一列的另一张表中。我想偏移复制的下一个值是I284,然后是I286,依此类推。所有这些细胞是否在孔之间。我可以通过CTRL+Down选择我感兴趣的所有值,这就是我使用xldown的原因。这里的困难在于,当我粘贴后要返回到第一个工作表时,我不知道如何返回到上次复制的行,因此我使用了固定引用(X9),然后多次向下xldown它。数据是在一列上编译的吗?因为如果是这样的话,也许用xlUp方法确定最后一行就足够了。例如
Range(“A1:A”和Range(“a048576”).end(xlUp).row.Copy
为什么要多次复制数据?一次还不够吗?不。我想多次批量复制大量数据,这些数据之间有一些漏洞。你只是想复制从某一行到最后一行的范围吗?您想同时复制“孔”还是只复制非空白行?xldown转到I11(第一行),然后宏向右移动8列,复制,向左移动8列,然后将该值粘贴到第一行最后一列的另一张表中。我想偏移复制的下一个值是I284,然后是I286,依此类推。所有这些细胞是否在孔之间。我可以通过CTRL+Down选择我感兴趣的所有值,这就是我使用xldown的原因。这里的困难在于,当我粘贴后要返回到第一个工作表时,我不知道如何返回到上次复制的行,因此我使用了固定引用(X9),然后多次向下xldown它。数据是在一列上编译的吗?因为如果是这样的话,也许用xlUp方法确定最后一行就足够了。例如
Range(“A1:A”和Range(“a048576”).end(xlUp).row.Copy