Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将excel函数指定给excel VBA中的变量_Excel_Vba - Fatal编程技术网

将excel函数指定给excel VBA中的变量

将excel函数指定给excel VBA中的变量,excel,vba,Excel,Vba,我正在尝试将am excel函数指定给VBA变量。我尝试了几种不同的数据类型,但似乎都不起作用。我正在尝试计算表“tblAdsorpsionColumn”中的列和行,我不想每次在VBA中使用excel函数时都键入“Application.WorksheetFunction”。我知道还有其他方法可以做到这一点,但我想用这种方法来学习如何使用这个功能。(不起作用的内容:工作表、双精度、字符串、对象) 假设您在VBA中经常使用SUM()工作表函数,并且不想不断重复键入Application.Works

我正在尝试将am excel函数指定给VBA变量。我尝试了几种不同的数据类型,但似乎都不起作用。我正在尝试计算表“tblAdsorpsionColumn”中的列和行,我不想每次在VBA中使用excel函数时都键入“Application.WorksheetFunction”。我知道还有其他方法可以做到这一点,但我想用这种方法来学习如何使用这个功能。(不起作用的内容:工作表、双精度、字符串、对象)

假设您在VBA中经常使用
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