如何在Excel中生成或列出所有可能的排列组合?

如何在Excel中生成或列出所有可能的排列组合?

排列可以定义为按特定顺序排列对象。在本文中,用户将了解使用VBA代码生成排列的方法。为此,用户需要打开VBA的代码编辑器,然后简单地点击“确定”按钮。最后,运行编写的代码,排列序列将正常显示在工作表上。请参考所有列出的步骤,以了解完整的方法。

示例1:使用VBA代码在Excel中生成或列出所有可能的排列组合

步骤 1

理解在Excel中生成所有可能排列的过程。在这个例子中,用户将能够通过使用VBA代码计算所有可能的排列组合。 考虑下面给定的工作表 –

如何在Excel中生成或列出所有可能的排列组合?

步骤 2

前往“开发人员”选项卡,然后在“代码”部分下转到“Visual Basic”选项卡。请参考下面给出的图像以获得正确的参考。

如何在Excel中生成或列出所有可能的排列组合?

步骤 3

新打开的对话框是“Microsoft Visual Basic for Applications”。这将打开下面给出的代码窗口。 −

如何在Excel中生成或列出所有可能的排列组合?

步骤 4

在对话框中,打开“插入”选项,然后单击“模块”。请参考下面所示的图像。

如何在Excel中生成或列出所有可能的排列组合?

步骤 5

这将打开一个空白的代码区域。 −

如何在Excel中生成或列出所有可能的排列组合?

步骤 6

将以下代码输入编辑器中 –

' define function header
Sub Evaluating_String()
   'Declaring required variables
   Dim str_x As String
   Dim row_f As Long
   Dim sc_x As Boolean
   ' setting required parameter values
   sc_x = Application.ScreenUpdating
   Application.ScreenUpdating = False
   ' message to display for dialog box
   str_x = Application.InputBox("Enter text to permute:", "Input dialog box", , , , , , 2)
   ' if length of entered string is less than 2
      ' then exist the sub
   If Len(str_x) < 2 Then Exit Sub
      ' if len is greater than 8, then
   If Len(str_x) >= 8 Then
      ' print message for too many premutations
      MsgBox "Please eneter less than 8 word combination!!!!!", vbInformation, "Input dialog box"
      Exit Sub
   ' else block
   Else
      'clear column 1 data
      ActiveSheet.Columns(1).Clear
      'set 1 to row_f value
      row_f = 1
      ' calling GetPermutation
      Call GetPermutation("", str_x, row_f)
   End If
      Application.ScreenUpdating = sc_x
End Sub
' defining submodule
Sub GetPermutation(str_1 As String, str_2 As String, ByRef row_x As Long)
   Dim i As Integer, len_x As Integer
   ' calculating the required length
   len_x = Len(str_2)
   ' if expression
   If len_x < 2 Then
      ' calculating range data
      Range("A" & row_x) = str_1 & str_2
      row_x = row_x + 1
   ' else block
   Else
      ' for each block
      For i = 1 To len_x
         ' calling permutation
         Call GetPermutation(str_1 + Mid(str_2, i, 1), Left(str_2, i - 1) + Right(str_2, len_x - i), row_x)
      Next
   End If
End Sub
Python

下面给出了代码区的快照。

如何在Excel中生成或列出所有可能的排列组合?

为确保结果的正确执行,请注意适当的语法和代码缩进。

步骤 7

点击下面显示的“运行”按钮。 −

如何在Excel中生成或列出所有可能的排列组合?

步骤 8

之后,一个名为 “宏” 的新对话框将显示上述声明的模块名称。.

如何在Excel中生成或列出所有可能的排列组合?

步骤 9

这将打开一个名为“输入对话框”的窗口,带有一个输入标签。用户可以在此输入要创建排列组合的数据。

如何在Excel中生成或列出所有可能的排列组合?

步骤 10

将数据输入为”A2#”,然后点击 “确定”

如何在Excel中生成或列出所有可能的排列组合?

步骤 11

这将显示如下所示的可能排列 −

如何在Excel中生成或列出所有可能的排列组合?

总结

完成上述文章后,用户将能够使用VBA代码从提供的字符串数据生成排列序列。使用VBA代码考虑的唯一事实是使用正确的语法来执行提供的代码语句并编写上面指定的正确代码。在这种情况下,将3个字符传递给字符串,并获得的结果数量为23=6(此处可能存在数学处理错误)。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程