复制行时VBA-Excel中的运行时错误1004

时间:2018-07-02 09:10:40

标签: excel vba excel-vba

我刚刚学习了一些VBA,以便制作一些耗时的报告。仅当我的原始数据低于100000行时,VBA才能完美运行。如果它有超过100000行,则会抛出一个错误:

  

运行时错误'1004'-   对象“ _Global”的方法“范围”失败

我编写的代码:

$fruits=array('orange', 'banana', 'apple', 'raspberry');
function pick($count,$fruits){
    $counter=0;
  for ($i = 0; $i <=count($fruits)+1 ; $i++) {
     if ($i>=$count) {
        if ($counter<=2) {
            if (array_key_exists($i, $fruits)) {
                echo $fruits[$i];
                echo '<br>';
                $counter++;
            }
            else{
                $counter++;
                echo $fruits[0];
            }                       
        }
     }
  }
}

echo pick(0,$fruits);
echo '<br>';
echo pick(1,$fruits);
echo '<br>';
echo pick(2,$fruits);

谢谢!

1 个答案:

答案 0 :(得分:1)

此行:

Range("A1:BI1" & Magisk).Copy

实际上会产生类似的内容:

Range("A1:BI1100").Copy

当Magisk的值为100时。并且您期望:

Range("A1:BI100").Copy

因此,将行更改为:

Range("A1:BI" & Magisk).Copy

您会没事的。有空时请阅读此书-How to avoid using Select in Excel VBA