VBA删除100k +命名范围

时间:2017-05-17 07:19:32

标签: excel vba excel-vba

所以基本上我已经从我的前任那里得到了一个传统的excel来处理一堆数据。 他基本上命名每个数据点并相应地处理它们。 问题是他的代码没有清除旧的名称,导致这些年份的名称累积。 现在我的excel表中有100k +名字,我无法清除。

我尝试过使用:

Sub dlname 

  Dim nm as name 

  For each nm in activeworkbook.names

    nm.delete

  Next nm 

End sub 

它总是给我运行时错误7,内存不足。

对此有何解决方案?

2 个答案:

答案 0 :(得分:1)

试试这个:

Do While (ActiveWorkbook.Names.Count > 0)

ActiveWorkbook.Names.Item(1).Delete

Loop

答案 1 :(得分:0)

我建议你用(如Amorpheuses所说)在

之间保存一块
    Sub dlname

    Dim j as long

    For j=20000 to 1 step -1
     if j<=activeworkbook.names.count then
       activeworkbook.names(j).delete
     end if
    Next j
    activeworkbook.save
    End sub