VBA中引用工作表函數


在Excel里有很多函數使用起來很方便,譬如:sum、average、min、max。

但是工作表函數是不能在宏代碼里直接使用的,它們和vba語言中的函數是不一樣的;與之相對應,Vba中的函數例如val,mid在工作表里也不能通用。

所以在vba語言里調用工作表函數,例如:

1. 讓一個變量得到單元格A1到B5的總和(變量設為X) X=SUM(RANGE("A1:B5"))的寫法明顯是行不通的。

2. 正確寫法是:

1 Sub 引用工作表函數()
2 Dim x%
3 x = Application.WorksheetFunction.Sum(Range("A1:B5"))
4 End Sub

也就是說必須通過 Application 對象的 Worksheetfunction 屬性來間接調用工作表函數!

以下三種方法都對:

1 '借用工作表函數
2 Sub 運用工作表函數()
3 MsgBox Application.WorksheetFunction.CountIf(range("a1:a10"), "鋼筆")
4 MsgBox WorksheetFunction.CountIf(range("a1:a10"), "鋼筆")
5 MsgBox Application.CountIf(range("a1:a10"), "鋼筆")
6 End Sub

 同時,也可以采用下面的方式:

1 Sub 帶工作表函數的計算()
2 Dim i As Integer
3 For i = 1 To 10
4     Sheet1.Cells(i, 4) = "=sum(a" & i & ":b" & i & ")"
5 Next i
6 End Sub

 

1 Sub 公式帶引號的計算()
2 Cells(12, 1) = "=COUNTIF(A1:A10,"">9"")"
3 Cells(12, 2) = "=sum(INDIRECT(""a1:a10""))"
4 End Sub

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM