會員登錄 - 用戶注冊 - 網(wǎng)站地圖 Office中國(office-cn.net),專業(yè)Office論壇
當(dāng)前位置:主頁 > 技巧 > Excel技巧 > 編程 > 正文

在VBA如何使用Excel工作表函數(shù)

時間:2005-02-04 19:29 來源:Microsoft 作者:Microsoft 閱讀:

摘自EXCEL幫助

在 Visual Basic 中使用 Microsoft Excel 工作表函數(shù)
在 Visual Basic 語句中可以使用大多數(shù) Microsoft Excel 工作表函數(shù)。若要查看可以使用的工作表函數(shù)列表,請參閱 可用于 Visual Basic 的工作表函數(shù)列表。

注釋  一些工作表函數(shù)在 Visual Basic 中是不實(shí)用的。例如:Concatenate 函數(shù)就不實(shí)用,因?yàn)樵?nbsp;Visual Basic 中可使用 & 運(yùn)算符來連接多個文本值。

從 Visual Basic 中調(diào)用工作表函數(shù)
在 Visual Basic 中,通過 WorksheetFunction 對象可使用 Microsoft Excel 工作表函數(shù)。

以下 Sub 過程使用 Min 工作表函數(shù)來決定在某個單元格區(qū)域中的最小值。首先,將變量 myRange 聲明為 Range 對象,然后將其設(shè)置為 Sheet1 上的 A1:C10 單元格區(qū)域。指定另一個變量 answer 為對 myRange 應(yīng)用 Min 函數(shù)的結(jié)果。最后,answer 的值就被顯示在消息框中。

Sub UseFunction()
    Dim myRange As Range
    Set myRange = Worksheets("Sheet1").Range("A1:C10")
    answer = Application.WorksheetFunction.Min(myRange)
    MsgBox answer
End Sub
        
如果您使用的工作表函數(shù)需要一個單元格區(qū)域引用作為參數(shù),則必須指定一個 Range 對象。例如:您可以用 Match 工作表函數(shù)搜索單元格區(qū)域。可以在工作表單元格中輸入公式,如“=MATCH(9,A1:A10,0)”。但是,您應(yīng)在 Visual Basic 過程中指定一個 Range 對象來獲取相同的結(jié)果。

Sub FindFirst()
    myVar = Application.WorksheetFunction _
        .Match(9, Worksheets(1).Range("A1:A10"), 0)
    MsgBox myVar
End Sub
        
注釋  Visual Basic 函數(shù)不使用 WorksheetFunction 識別符。函數(shù)可能和 Microsoft Excel 的函數(shù)同名但作用各異。例如:Application.WorksheetFunction.Log 和 Log 將返回不同的值。

在單元格中插入工作表函數(shù)
若要在單元格中插入工作表函數(shù),請指定函數(shù)作為相應(yīng)的 Range 對象的 Formula 屬性值。以下示例中,將 RAND 工作表函數(shù)(可生成隨機(jī)數(shù))賦給了活動工作簿中 Sheet1 上 A1:B3 單元格區(qū)域的 Formula 屬性。

Sub InsertFormula()
    Worksheets("Sheet1").Range("A1:B3").Formula = "=RAND()"
End Sub
        
示例
本示例使用工作表函數(shù) Pmt 來計(jì)算住宅抵押貸款的支付額。請注意,本示例使用的是 InputBox 方法,而不是 InputBox 函數(shù),因此該方法可以執(zhí)行類型檢查。Static 語句使 Visual Basic 保留三個變量的值;當(dāng)下次運(yùn)行該程序時,這些變量將顯示為默認(rèn)值。

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 的工作表函數(shù)列表
             

             

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 

(責(zé)任編輯:admin)

頂一下
(0)
0%
踩一下
(0)
0%
發(fā)表評論
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動的言論。
評價(jià):