

摘自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