如何在Microsoft Excel中创建用户定义函数
在本文中,我们将学习如何使用VBA在Microsoft Excel中创建用户定义的函数。
| 用户定义的函数:-Microsoft Excel已经具有许多功能,但是仍然每个人都有不同的要求和情况,我们可以根据称为用户定义函数的要求创建自己的函数。我们可以像在Excel中使用其他函数一样使用用户定义函数。
|以下是我们将为其创建用户定义函数的主题:1)。如何计算单元格或范围内的单词数?
2)。如何从Excel中的句子或单元格中提取单词?
3)。如何为ISO创建公式?
4)。如何使用VBA知道工作表和工作簿名称?
5)。如何从Excel中的单元格中提取第一个和最后一个单词?
如何创建用户定义的函数以计算单元格或范围中的单词数?我们在工作表1中有数据,其中有一些地址,因此我们想通过Excel中的VBA创建用户定义的函数来对单元格或范围中的单词进行计数。
若要使用户定义的功能,请按照以下给定的步骤进行操作:-*打开VBA页面,然后按Alt + F11键。
-
插入一个模块。
编写以下代码:
Function WORDSCOUNT(rRange As Range) As Long Dim rCell As Range Dim Count As Long For Each rCellInrRange lCount = lCount + Len(Trim(rCell)) - Len(Replace(Trim(rCell), " ", "")) + 1 Next rCell WORDSCOUNT = lCount End Function
代码说明:-为了创建用户定义的函数,我们从代码开始到函数名称并定义变量。我们在代码中使用了“ For Each循环”来计算范围内的单词。
如何在Excel中使用此功能?
要使用此功能,请遵循以下给定步骤:-*转到Excel工作表。
-
要计算单元格的单词,请在单元格D7中输入公式。
-
= WORDSCOUNT(C7),单元格C7是我们要在其中计算单词的单元格。
-
该函数将返回6,这意味着单元格C7包含6个单词。
-
要对其余单元格进行相同的计算,请复制相同的公式并粘贴在范围内。
-
要计算范围内的单词,请使用公式= WORDSCOUNT(C7:C16),然后按Enter。
-
该函数将返回单词数。
注意:-此UDF将有助于计算范围内或单个单元格中的单词。
现在,我们将使用指定的定界符(,)编写代码以对单词进行计数。请遵循以下给定步骤:-
Function SEPARATECOUNTWORDS(rRange As Range, Optional separator As Variant) As Long Dim rCell As Range Dim Count As Long If IsMissing(separator) Then separator = "," End If For Each rCellInrRange lCount = lCount + Len(Trim(rCell)) - Len(Replace(Trim(rCell), separator, "")) Next rCell SEPARATECOUNTWORDS = lCount End Function
要使用此功能,请遵循以下给定步骤:-
| *转到Excel工作表。
-
要计算单词中的特定分隔符,我们将使用此定义的函数。
-
= SEPARATECOUNTWORDS(C7),然后按Enter。
-
该函数将返回特定定界符的计数。
如何使用VBA从Microsoft Excel中的句子或单元格中提取单词?我们在sheet1中有数据。在其中有一些地址,因此我们希望通过Excel中的VBA创建用户定义的函数,从句子或单元格或范围中提取单词。
要创建用户定义的功能,请遵循以下给定步骤:-
-
打开VBA页面,然后按Alt + F11键。
-
插入一个模块。
编写下面提到的代码*:-
Function GETWORD(Text As Variant, N As Integer, Optional Delimiter As Variant) As String If IsMissing(Delimiter) Then Delimiter = " " End If GETWORD = Split(Text, Delimiter)(N - 1) End Function
|代码说明:-在上述代码中,我们提到了带有变量的函数名称。然后我们定义了从句子或单元格中提取单词的标准。
现在,我们将学习如何使用此公式。请按照以下给定步骤进行操作:-*转到Excel工作表。
-
在单元格D7中使用此公式。
-
= GETWORD(C7,2)并按Enter。
-
该函数将从单元格返回第二个单词,因为在公式中我们已经提到了2 ^ nd ^数字的单词。如果要检索放置在3 ^ rd ^位置的单词,则需要在公式中将数字从2更改为3。
如何使用VBA在Microsoft Excel中创建ISO周编号公式?我们将学习如何使用此UDF在Excel中创建ISO周数公式。我们将使用此功能来识别提到的日期属于一年中的哪个星期几。
我们在工作表中有一个日期列表,在第二列中,我们要检索星期数。
要为此要求创建UDF,请执行以下给定的步骤:-*打开VBA页面,然后按Alt + F11键。
-
插入一个模块。
-
写下面提到的代码:-
Function ISOWEEKNUMBER(Indate As Date) As Long Dim Dt As Date Dt = DateSerial(Year(Indate - Weekday(Indate - 1) + 4), 1, 3) ISOWEEKNUMBER = Int((Indate - Dt + Weekday(Dt) + 5) / 7) End Function
代码说明:-:-在上面的代码中,我们提到了带有变量的函数名称。然后我们设置了日期值,然后定义了“ ISOWEENUMBER”函数的标准。
如何在Excel文件中使用此功能?
-
转到Excel工作表。
-
在单元格D7中输入公式。
-
= ISOWEEKNUMBER(C7),然后按Enter。
-
该函数将返回单元格中输入日期的星期。
现在要检索每个日期的星期数,请复制范围内的相同公式。
现在,我们将在Excel-年度的第一个星期一开始学习如何从年初开始返回ISO标准。
此功能基本上会检查一年中的第一个^星期一将在哪个日期发生,然后它将开始计算从该日期开始的星期数。让我们看看如何为该要求创建UDF。
请执行以下给定步骤:-*打开VBA页面,然后按Alt + F11键。
-
插入一个模块。
写下面提到的代码*:-
Function ISOSTYR(Year As Integer) As Date Dim WD As Integer Dim NY As Date NY = DateSerial(Year, 1, 1) WD = (NY - 2) Mod 7 If WD < 4 Then ISOSTYR = NY - WD Else ISOSTYR = NY - WD + 7 End If End Function
|代码说明:-在上面的代码中,我们提到了带有变量的函数名称。然后,我们为变量设置了标准,然后定义了公式输入。
您只需要以这种格式提供2001年,该公式将为您提供该年的1 ^ st ^星期一。
现在,我们将学习如何在Excel文件中使用UDF。请按照以下给定步骤进行操作:-*转到Excel工作表。
-
在单元格D7中输入公式。
-
= ISOSTYR(C7),然后按Enter。
-
该函数将返回新年第一周的第1个^星期一的日期。
-
要返回新年第一周的第一个^星期一的日期,请复制相同的公式并粘贴到范围内。
如何通过使用Microsoft Excel中的VBA来了解工作表和工作簿名称?请遵循以下给定的代码和步骤:-*打开VBA页面并按Alt + F11键。
-
插入一个模块。
写下面提到的代码*:-
Function Worksheetname() Worksheetname = Range("A1").Parent.Name End Function
|代码说明:-在上面的代码中,我们提到了函数名称,然后定义了如何知道工作表名称。
要使用此公式,只需以这种方式在任何单元格中输入公式:-= Worksheetname()。该函数将返回工作表名称。
若要创建工作簿名称的功能,请遵循以下给定的步骤和代码:-*打开VBA页面,按Alt + F11键。
-
插入一个模块。
-
写下面提到的代码:-
Function Workbookname() Workbookname = ThisWorkbook.Name End Function
代码说明:-:-在上面的代码中,我们提到了函数名称,然后定义了如何了解工作簿名称。
要使用此公式,只需以这种方式在任何单元格中输入公式:-= Workbookname()。该函数将返回工作表名称。
如何在Microsoft Excel中使用VBA从单元格中提取第一个单词和最后一个单词?在sheet1中有数据,其中有一些地址,因此我们想通过在Excel中通过VBA创建用户定义的函数来从句子或单元格或范围中提取最后一个单词。
首先,我们将编写提取第一个单词的函数。请按照以下给定的步骤操作:-*打开VBA页面,按Alt + F11键。
插入模块编写下面提到的代码*:-
Function GETFW(Text As String, Optional Separator As Variant) Dim FW As String If IsMissing(Separator) Then Separator = " " End If FW = Left(Text, InStr(1, Text, Separator, vbTextCompare)) GETFW = Replace(FW, Separator, "") End Function
代码说明:-在上述代码中,我们提到了带有变量的函数名称。然后我们定义了从句子或单元格中提取单词的标准。
现在,我们将学习如何使用此公式。请遵循以下给定步骤:-
-
转到Excel工作表。
-
在单元格D9中使用此公式。
-
= GETFW(C9)并按Enter。
-
该函数将从数据中返回第一个单词。现在,要检索所有单元格的第一个单词,请复制该范围内的相同公式。
-
现在,我们将编写代码以提取单元格中的最后一个单词。
请遵循以下提到的代码:-*打开VBA页面并按Alt + F11键。
-
插入一个模块。
写下面提到的代码*:-
Function GETLW(Text As String, Optional Separator As Variant) Dim LW As String If IsMissing(Separator) Then Separator = " " End If LW = StrReverse(Text) LW = Left(lastword, InStr(1, LW, Separator, vbTextCompare)) GETLW = StrReverse(Replace(LW, Separator, "")) End Function
|现在,我们将学习如何使用此公式。请按照以下给定步骤进行操作:-*转到Excel工作表。
-
在单元格D9中使用此公式。
-
= GETLW(C9)按Enter。
-
该函数将返回数据中的最后一个单词。现在,要检索所有单元格的最后一个单词,请复制该范围内的相同公式。
这些是我们可以通过VBA定义的函数,然后可以将其用作Excel的公式。另外,我们可以创建更多用户定义的函数。
继续与我们一起学习,我们将提出更多棘手的公式。