Excel开发编程
在VBA如何使用Excel工作表函数
2005-02-04 19:29:17

摘自EXCEL帮助

在 Visual Basic 中使用 Microsoft Excel 工作表函数在 Visual Basic 语句中可以使用大多数 Microsoft Excel 工作表函数。若要查看可以使用的工作表函数列表,请参阅 可用于 Visual Basic 的工作表函数列表。

注释  一些工作表函数在 Visual Basic 中是不实用的。例如:Concatenate 函数就不实用,因为在 Visual Basic 中可使用 & 运算符来连接多个文本值。

从 Visual Basic 中调用工作表函数在 Visual Basic 中,通过 WorksheetFunction 对象可使用 Microsoft Excel 工作表函数。

以下 Sub 过程使用 Min 工作表函数来决定在某个单元格区域中的最小值。首先,将变量 myRange 声明为 Range 对象,然后将其设置为 Sheet1 上的 A1:C10 单元格区域。指定另一个变量 answer 为对 myRange 应用 Min 函数的结果。最后,answer 的值就被显示在消息框中。

Sub UseFunction()    Dim myRange As Range    Set myRange = Worksheets("Sheet1").Range("A1:C10")    answer = Application.WorksheetFunction.Min(myRange)    MsgBox answerEnd Sub        如果您使用的工作表函数需要一个单元格区域引用作为参数,则必须指定一个 Range 对象。例如:您可以用 Match 工作表函数搜索单元格区域。可以在工作表单元格中输入公式,如“=MATCH(9,A1:A10,0)”。但是,您应在 Visual Basic 过程中指定一个 Range 对象来获取相同的结果。

Sub FindFirst()    myVar = Application.WorksheetFunction _        .Match(9, Worksheets(1).Range("A1:A10"), 0)    MsgBox myVarEnd Sub        注释  Visual Basic 函数不使用 WorksheetFunction 识别符。函数可能和 Microsoft Excel 的函数同名但作用各异。例如:Application.WorksheetFunction.Log 和 Log 将返回不同的值。

在单元格中插入工作表函数若要在单元格中插入工作表函数,请指定函数作为相应的 Range 对象的 Formula 属性值。以下示例中,将 RAND 工作表函数(可生成随机数)赋给了活动工作簿中 Sheet1 上 A1:B3 单元格区域的 Formula 属性。

Sub InsertFormula()    Worksheets("Sheet1").Range("A1:B3").Formula = "=RAND()"End Sub        示例本示例使用工作表函数 Pmt 来计算住宅抵押贷款的支付额。请注意,本示例使用的是 InputBox 方法,而不是 InputBox 函数,因此该方法可以执行类型检查。Static 语句使 Visual Basic 保留三个变量的值;当下次运行该程序时,这些变量将显示为默认值。

Static loanAmtStatic loanIntStatic loanTermloanAmt = Application.InputBox _    (Prompt:="Loan amount (100,000 for example)", _        Default:=loanAmt, Type:=1)loanInt = Application.InputBox _    (Prompt:="Annual interest rate (8.75 for example)", _        Default:=loanInt, Type:=1)loanTerm = Application.InputBox _    (Prompt:="Term in years (30 for example)", _        Default:=loanTerm, Type:=1)payment = Application.WorksheetFunction _    .Pmt(loanInt / 1200, loanTerm * 12, loanAmt)MsgBox "Monthly payment is " & Format(payment, "Currency")        ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------可用于 Visual Basic 的工作表函数列表             

             

AAcos 

Acosh 

And 

Asin 

Asinh 

Atan2 

Atanh 

AveDev 

Average 

BBetaDist 

BetaInv 

BinomDist 

CCeiling 

ChiDist 

ChiInv 

ChiTest 

Choose 

Clean 

Combin 

Confidence 

Correl 

Cosh 

Count 

CountA 

CountBlank 

CountIf 

Covar 

CritBinom 

DDAverage 

Days360 

Db 

DCount 

DCountA 

Ddb 

Degrees 

DevSq 

DGet 

DMax 

DMin 

Dollar 

DProduct 

DStDev 

DStDevP 

DSum 

DVar 

DVarP 

EEven 

ExponDist 

FFact 

FDist 

Find 

FindB 

FInv 

Fisher 

FisherInv 

Fixed 

Floor 

Forecast 

Frequency 

FTest 

Fv 

GGammaDist 

GammaInv 

GammaLn 

GeoMean 

Growth 

HHarMean 

HLookup 

HypGeomDist 

IIndex 

Intercept 

Ipmt 

Irr 

IsErr 

IsError 

IsLogical 

IsNA 

IsNonText 

IsNumber 

Ispmt 

IsText 

JKKurt 

LLarge 

LinEst 

Ln 

Log 

Log10 

LogEst 

LogInv 

LogNormDist 

Lookup 

MMatch 

Max 

MDeterm 

Median 

Min 

MInverse 

MIrr 

MMult 

Mode 

NNegBinomDist 

NormDist 

NormInv 

NormSDist 

NormSInv 

NPer 

Npv 

OOdd 

Or 

PPearson 

Percentile 

PercentRank 

Permut 

Phonetic 

Pi 

Pmt 

Poisson 

Power 

Ppmt 

Prob 

Product 

Proper 

Pv 

QQuartile 

RRadians 

Rank 

Rate 

Replace 

ReplaceB 

Rept 

Roman 

Round 

RoundDown 

RoundUp 

RSq 

RTD 

SSearch 

SearchB 

Sinh 

Skew 

Sln 

Slope 

Small 

Standardize 

StDev 

StDevP 

StEyx 

Substitute 

Subtotal 

Sum 

SumIf 

SumProduct 

SumSq 

SumX2MY2 

SumX2PY2 

SumXMY2 

Syd 

TTanh 

TDist 

Text 

TInv 

Transpose 

Trend 

Trim 

TrimMean 

TTest 

UUSDollar 

VVar 

VarP 

Vdb 

VLookup 

WWeekday 

Weibull 

XYZZTest