在本文中,我们将学习如何使用VBA在Microsoft Excel中创建用户定义的函数。

| 用户定义的函数:-Microsoft Excel已经具有许多功能,但是仍然每个人都有不同的要求和情况,我们可以根据称为用户定义函数的要求创建自己的函数。我们可以像在Excel中使用其他函数一样使用用户定义函数。

|以下是我们将为其创建用户定义函数的主题:1)。如何计算单元格或范围内的单词数?

2)。如何从Excel中的句子或单元格中提取单词?

3)。如何为ISO创建公式?

4)。如何使用VBA知道工作表和工作簿名称?

5)。如何从Excel中的单元格中提取第一个和最后一个单词?

如何创建用户定义的函数以计算单元格或范围中的单词数?我们在工作表1中有数据,其中有一些地址,因此我们想通过Excel中的VBA创建用户定义的函数来对单元格或范围中的单词进行计数。

image 1

若要使用户定义的功能,请按照以下给定的步骤进行操作:-*打开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个单词。

  • 要对其余单元格进行相同的计算,请复制相同的公式并粘贴在范围内。

image 2

  • 要计算范围内的单词,请使用公式= WORDSCOUNT(C7:C16),然后按Enter。

  • 该函数将返回单词数。

image 3

注意:-此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。

  • 该函数将返回特定定界符的计数。

image 4

如何使用VBA从Microsoft Excel中的句子或单元格中提取单词?我们在sheet1中有数据。在其中有一些地址,因此我们希望通过Excel中的VBA创建用户定义的函数,从句子或单元格或范围中提取单词。

image 5

要创建用户定义的功能,请遵循以下给定步骤:-

  • 打开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。

image 6

如何使用VBA在Microsoft Excel中创建ISO周编号公式?我们将学习如何使用此UDF在Excel中创建ISO周数公式。我们将使用此功能来识别提到的日期属于一年中的哪个星期几。

我们在工作表中有一个日期列表,在第二列中,我们要检索星期数。

image 7

要为此要求创建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。

  • 该函数将返回单元格中输入日期的星期。

现在要检索每个日期的星期数,请复制范围内的相同公式。

image 8

现在,我们将在Excel-年度的第一个星期一开始学习如何从年初开始返回ISO标准。

此功能基本上会检查一年中的第一个^星期一将在哪个日期发生,然后它将开始计算从该日期开始的星期数。让我们看看如何为该要求创建UDF。

image 9

请执行以下给定步骤:-*打开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个^星期一的日期。

  • 要返回新年第一周的第一个^星期一的日期,请复制相同的公式并粘贴到范围内。

image 10

如何通过使用Microsoft Excel中的VBA来了解工作表和工作簿名称?请遵循以下给定的代码和步骤:-*打开VBA页面并按Alt + F11键。

  • 插入一个模块。

写下面提到的代码*:-

Function Worksheetname()

Worksheetname = Range("A1").Parent.Name

End Function

|代码说明:-在上面的代码中,我们提到了函数名称,然后定义了如何知道工作表名称。

要使用此公式,只需以这种方式在任何单元格中输入公式:-= Worksheetname()。该函数将返回工作表名称。

image 11

若要创建工作簿名称的功能,请遵循以下给定的步骤和代码:-*打开VBA页面,按Alt + F11键。

  • 插入一个模块。

  • 写下面提到的代码:-

Function Workbookname()

Workbookname = ThisWorkbook.Name

End Function

代码说明:-:-在上面的代码中,我们提到了函数名称,然后定义了如何了解工作簿名称。

要使用此公式,只需以这种方式在任何单元格中输入公式:-= Workbookname()。该函数将返回工作表名称。

image 12

如何在Microsoft Excel中使用VBA从单元格中提取第一个单词和最后一个单词?在sheet1中有数据,其中有一些地址,因此我们想通过在Excel中通过VBA创建用户定义的函数来从句子或单元格或范围中提取最后一个单词。

image 13

首先,我们将编写提取第一个单词的函数。请按照以下给定的步骤操作:-*打开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。

  • 该函数将从数据中返回第一个单词。现在,要检索所有单元格的第一个单词,请复制该范围内的相同公式。

image 14

  • 现在,我们将编写代码以提取单元格中的最后一个单词。

请遵循以下提到的代码:-*打开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。

  • 该函数将返回数据中的最后一个单词。现在,要检索所有单元格的最后一个单词,请复制该范围内的相同公式。

image 15

这些是我们可以通过VBA定义的函数,然后可以将其用作Excel的公式。另外,我们可以创建更多用户定义的函数。

继续与我们一起学习,我们将提出更多棘手的公式。

Excel