[VBA] 如何調用 Excel 函數

[VBA] 如何調用 Excel 函數

Excel內建相當多的函數,我們在寫VBA時該如何呼叫呢?記得有寫過[VB6] 調用Excel函數及副程式,不過到了Office 2007竟然跑不動了,除了檔案的副檔名改了,用法可能也不一樣了吧,沒關係我們還有Application.WorksheetFunction方法可以用,真是簡單又方便阿

2009-11-2 下午 04-19-25-1

 

要用之前需要先建立Range物件,代入函數中的參數,用法跟在Excel儲存格的用法都是一樣的,在Excel VBA開發必比在VS的方便,連要代入參數的資料型態我都用猜的,為什麼要用猜的呢?難道沒有說明檔嗎?

2009-11-2 下午 04-20-28

範例


 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了

2009-11-2 下午 04-55-48

VS真的做的很不錯,VBA會改版嗎 >"<

在虛機的OFFICE找到函數說明了,原來是資料型態是Variant(VBA及VB6不宣告資料型態就是Variant),回傳Double

2009-11-2 下午 05-15-56

2009-11-2 下午 05-15-02


{
	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

Image result for microsoft+mvp+logo