当前位置:  开发笔记 > 后端 > 正文

迭代Excel VBA或VSTO 2005中的所有单元格

如何解决《迭代ExcelVBA或VSTO2005中的所有单元格》经验,为你挑选了3个好方法。

我需要简单地浏览Excel电子表格中的所有单元格并检查单元格中的值.单元格可能包含文本,数字或空白.我不太熟悉/舒适地使用'Range'的概念.因此,非常感谢任何样本代码.(我确实试图谷歌它,但我发现的代码片段并不完全符合我的需要)

谢谢.



1> cori..:

如果您只需要查看正在使用的单元格,您可以使用:

sub IterateCells()

   For Each Cell in ActiveSheet.UsedRange.Cells
      'do some stuff
   Next

End Sub

这将击中从A1到最后一个包含数据的单元格中的所有内容(最右边的单元格)


哇...比workheet.cells好多了,我的系统崩溃了!

2> betelgeuce..:
Sub CheckValues1()
    Dim rwIndex As Integer
    Dim colIndex As Integer
    For rwIndex = 1 To 10
            For colIndex = 1 To 5
                If Cells(rwIndex, colIndex).Value <> 0 Then _
                    Cells(rwIndex, colIndex).Value = 0
            Next colIndex
    Next rwIndex
End Sub

在http://www.java2s.com/Code/VBA-Excel-Access-Word/Excel/Checksvaluesinarange10rowsby5columns.htm上找到这个片段.它似乎非常有用,可以说明检查有序单元格中值的方法时尚.

想象一下它是一个二维数组,并应用相同的逻辑循环遍历单元格.


循环遍历范围中的每个单元的代码效率极低.将范围读入数组,对数组进行检查/更改,然后将数组写回范围.我们同意停止使用此代码,它可能会消失.

3> Jon Fournier..:

如果您只是查看单元格的值,则可以将值存储在变体类型的数组中.看起来获取数组中元素的值比使用Excel进行交互要快得多,因此与重复获取单个单元格相比,使用所有单元格值的数组可以看到性能的差异.

Dim ValArray as Variant
ValArray = Range("A1:IV" & Rows.Count).Value

然后你可以通过检查ValArray(行,列)得到一个单元格值

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有