2012-02-16 36 views
1

需要一些帮助,在工作表中找到最大值,最大值

我试着用范围:

Dim maxNumber As Double 
maxNumber = Application.WorksheetFunction.Max(Range("A1:B5")) 

除了我不希望它停止在B5,我希望它遍历整个Worksheet。

所以我发现,“XFD1048576”象征着一个工作表的最后一个单元格:

Dim maxNumber As Double 
maxNumber = Application.WorksheetFunction.Max(Range("A1:XFD1048576")) 

刚才不知道是否有一个更优雅的解决方案,任何东西取代“XFD1048576”,或简单地写更好的代码。

回答

4

为什么不使用"UsedRange"属性?然后

你的代码示例将成为类似:

Dim maxNumber As Double 
maxNumber = Application.WorksheetFunction.Max(ActiveWorkbook.Worksheets("Sheet1").UsedRange) 

您还可以使用Cells属性 - ActiveWorkbook.Worksheets("Sheet1").Cells搜索每一个细胞,即使它是空的。出于这个原因,我宁愿使用UsedRange。

+0

感谢您的帮助! – 2012-02-16 13:44:30

+0

会建议添加一个条件来测试没有数字值 - esle 0将返回空白工作表或仅包含文本的工作表 – brettdj 2012-02-17 03:07:53