Excel:百分比更改宏,不包括非数字行

时间:2013-11-22 19:29:12

标签: excel excel-vba vba

我遇到了一些Excel问题,如果可能的话,我想获得一个宏来帮助我。

问题:

我需要在一行中找到一系列列的百分比差异(A1:A54)。像=((max(xy:xy))-(MIN(xy:xy))/(MIN(xy:xy)

这样的东西

BUT

我需要excel从公式中排除包含不是数字的行(在随机位置加载这些行)。

我需要一些通用的东西,以便我可以在不同的工作簿等中运行它。

2 个答案:

答案 0 :(得分:0)

您可以使用宏中的“助手”功能来检查单元格中的数据类型,并仅在所有单元格都是“数字”类型时应用公式。

Function CellType(c) 
     '   Returns the cell type of the upper left
     '   cell in a range
    Application.Volatile 
    Set c = c.Range("A1") 
    Select Case True 
    Case IsEmpty(c): CellType = "Blank" 
    Case Application.IsText(c): CellType = "Text" 
    Case Application.IsLogical(c): CellType = "Logical" 
    Case Application.IsError(c): CellType = "Error" 
    Case IsDate(c): CellType = "Date" 
    Case InStr(1, c.Text, ":") <> 0: CellType = "Time" 
    Case c.HasFormula: CellType = "Formula" 
    Case IsNumeric(c): CellType = "Numeric" 
    End Select 
End Function 

答案 1 :(得分:0)

这样的东西会忽略空格和文本单元格

Function percentdifference(r As Range) As Double

    With Application.WorksheetFunction
        percentdifference = (.Max(r) - .Min(r)) / .Min(r)
    End With

End Function