会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 技巧 > Excel技巧 > 编程 > 正文

在VBA如何使用Excel工作表函数

时间:2005-02-04 19:29 来源:Microsoft 作者:Microsoft 阅读:

摘自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 answer
End 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 myVar
End 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 loanAmt
Static loanInt
Static loanTerm
loanAmt = 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 的工作表函数列表
             

             

A
Acos 

Acosh 

And 

Asin 

Asinh 

Atan2 

Atanh 

AveDev 

Average 

B
BetaDist 

BetaInv 

BinomDist 

C
Ceiling 

ChiDist 

ChiInv 

ChiTest 

Choose 

Clean 

Combin 

Confidence 

Correl 

Cosh 

Count 

CountA 

CountBlank 

CountIf 

Covar 

CritBinom 

D
DAverage 

Days360 

Db 

DCount 

DCountA 

Ddb 

Degrees 

DevSq 

DGet 

DMax 

DMin 

Dollar 

DProduct 

DStDev 

DStDevP 

DSum 

DVar 

DVarP 

E
Even 

ExponDist 

F
Fact 

FDist 

Find 

FindB 

FInv 

Fisher 

FisherInv 

Fixed 

Floor 

Forecast 

Frequency 

FTest 

Fv 

G
GammaDist 

GammaInv 

GammaLn 

GeoMean 

Growth 

H
HarMean 

HLookup 

HypGeomDist 

I
Index 

Intercept 

Ipmt 

Irr 

IsErr 

IsError 

IsLogical 

IsNA 

IsNonText 

IsNumber 

Ispmt 

IsText 

J
K
Kurt 

L
Large 

LinEst 

Ln 

Log 

Log10 

LogEst 

LogInv 

LogNormDist 

Lookup 

M
Match 

Max 

MDeterm 

Median 

Min 

MInverse 

MIrr 

MMult 

Mode 

N
NegBinomDist 

NormDist 

NormInv 

NormSDist 

NormSInv 

NPer 

Npv 

O
Odd 

Or 

P
Pearson 

Percentile 

PercentRank 

Permut 

Phonetic 

Pi 

Pmt 

Poisson 

Power 

Ppmt 

Prob 

Product 

Proper 

Pv 

Q
Quartile 

R
Radians 

Rank 

Rate 

Replace 

ReplaceB 

Rept 

Roman 

Round 

RoundDown 

RoundUp 

RSq 

RTD 

S
Search 

SearchB 

Sinh 

Skew 

Sln 

Slope 

Small 

Standardize 

StDev 

StDevP 

StEyx 

Substitute 

Subtotal 

Sum 

SumIf 

SumProduct 

SumSq 

SumX2MY2 

SumX2PY2 

SumXMY2 

Syd 

T
Tanh 

TDist 

Text 

TInv 

Transpose 

Trend 

Trim 

TrimMean 

TTest 

U
USDollar 

V
Var 

VarP 

Vdb 

VLookup 

W
Weekday 

Weibull 

X
Y
Z
ZTest 

(责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: