[VBA] 如何調用 Excel 函數
Excel內建相當多的函數,我們在寫VBA時該如何呼叫呢?記得有寫過[VB6] 調用Excel函數及副程式,不過到了Office 2007竟然跑不動了,除了檔案的副檔名改了,用法可能也不一樣了吧,沒關係我們還有Application.WorksheetFunction方法可以用,真是簡單又方便阿
要用之前需要先建立Range物件,代入函數中的參數,用法跟在Excel儲存格的用法都是一樣的,在Excel VBA開發必比在VS的方便,連要代入參數的資料型態我都用猜的,為什麼要用猜的呢?難道沒有說明檔嗎?
範例
Dim myRange As Range
Set myRange = Range("A1:A10")
'取最大
Debug.Print Application.WorksheetFunction.Max(myRange)
'取最小
Debug.Print Application.WorksheetFunction.Min(myRange)
'取第二大
Debug.Print Application.WorksheetFunction.Large(myRange, 2)
'取第二小
Debug.Print Application.WorksheetFunction.Small(myRange, 2)
'取第三大
Debug.Print Application.WorksheetFunction.Large(myRange, 3)
'取第三小
Debug.Print Application.WorksheetFunction.Small(myRange, 3)
End Sub
有說明阿,在2003我還在用呢,但是Office 2007相當不給面子,我按了F1之後竟然不給用Hellp,一直出現設定畫面,重開機後還是一樣出現設定畫面,看來暫時只能上網GOOGLE了
VS真的做的很不錯,VBA會改版嗎 >"<
在虛機的OFFICE找到函數說明了,原來是資料型態是Variant(VBA及VB6不宣告資料型態就是Variant),回傳Double
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]>
這當然也可以在VB.NET跟C#.NET裡調用這些函數,請參考前幾篇的
[VB .NET] Microsoft.Office.Interop.Excel 讀 / 寫 Excel 語法概全
[C# .Net] Microsoft.Office.Interop.Excel 讀 / 寫 Excel 語法概全
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET