将excel函数指定给excel VBA中的变量
我正在尝试将am excel函数指定给VBA变量。我尝试了几种不同的数据类型,但似乎都不起作用。我正在尝试计算表“tblAdsorpsionColumn”中的列和行,我不想每次在VBA中使用excel函数时都键入“Application.WorksheetFunction”。我知道还有其他方法可以做到这一点,但我想用这种方法来学习如何使用这个功能。(不起作用的内容:工作表、双精度、字符串、对象) 假设您在VBA中经常使用将excel函数指定给excel VBA中的变量,excel,vba,Excel,Vba,我正在尝试将am excel函数指定给VBA变量。我尝试了几种不同的数据类型,但似乎都不起作用。我正在尝试计算表“tblAdsorpsionColumn”中的列和行,我不想每次在VBA中使用excel函数时都键入“Application.WorksheetFunction”。我知道还有其他方法可以做到这一点,但我想用这种方法来学习如何使用这个功能。(不起作用的内容:工作表、双精度、字符串、对象) 假设您在VBA中经常使用SUM()工作表函数,并且不想不断重复键入Application.Works
SUM()
工作表函数,并且不想不断重复键入Application.WorksheetFunction。只需制作一个VBA包装器,如下所示:
Option Explicit
Public Function summ(rng As Range) As Variant
With Application.WorksheetFunction
summ = .Sum(rng)
End With
End Function
使用它会对性能造成很小的影响,但这是可以容忍的。您可以使用一个函数来“快捷”应用程序。工作表函数:
Sub tester()
Debug.Print wsf.Average(Selection), wsf.Sum(Selection)
End Sub
Function wsf() As Object
Set wsf = Application.WorksheetFunction
End Function
如果您在VBA中,那么
Range(“tblAdsorpsionColumn”).Columns.Count
会更好。有了它,您不必声明什么是“wsf”吗?否-wsf是名为“wsf”的函数,因此它已经声明了
Sub tester()
Debug.Print wsf.Average(Selection), wsf.Sum(Selection)
End Sub
Function wsf() As Object
Set wsf = Application.WorksheetFunction
End Function