Excel某区域如A1:D1中存储有4个数据,如何用VBA编程在另一区域中得到原数据的全排列24个数据?

全排列就是对于文本字符而言,例如:A、B、C、D,如何得到:
ABCD、ABDC、ACBD、ACDB、ADBC、ADCB、
BACD、BADC、BCAD、BCDA、BDAC、BDCA、
CABD、CADB、CBAD、CBDA、CDAB、CDBA、
DABC、DACB、DBAC、DBCA、DCAB、DCBA。

代码:

Sub pl()

Set D = CreateObject("scripting.dictionary")
arr = Range("A1:D1").Value

For i1 = 1 To 4
For i2 = 1 To 4
If i2 <> i1 Then
For i3 = 1 To 4
If i3 <> i1 And i3 <> i2 Then
For i4 = 1 To 4
If i4 <> i1 And i4 <> i2 And i4 <> i3 Then
D(arr(1, i1) & arr(1, i2) & arr(1, i3) & arr(1, i4)) = 0
End If
Next
End If
Next
End If
Next
Next

[E1].Resize(D.Count, 1) = Application.Transpose(D.keys)

End Sub
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-29
4个什么数据?文字还是数字还是什么?

excel里面我想 用VBA实现调用另一个工作簿中的数据怎么解决
1、点击Excel界面左下角的录制宏按钮录制宏。2、在【宏名】处输入一个有意义的名称,帮助以后识别该宏的功能。本例按照默认名称命名。选择将宏录制在【个人宏工作簿】并点击【确定】按钮。3、马上点击Excel界面左下角的停止录制宏按钮停止宏的录制。4、按Alt+F11打开VBE界面,如下图。5、在代码部分...

如何用VBA将多个Excel 同一列内容复制到另一个Excel里面自动排成列,求...
这样就行了,在"订单"的D2010面页上画一个文本框,输入"执行".然后在当前工作表内录制一个"执行"宏,如下:Sub 执行()Workbooks.Open Filename:="X:\\\\报告.xls"Windows("D2010").Activate Columns("C:G").Select Application.CutCopyMode = False Selection.Copy Windows("报告.xls").Activate She...

Excel表格中如何用VBA代码跨工作簿寻找对应的数据
如果使用华创网表,问题立即解决。目前问题的根源就是,本应放在同一个表的数据,却由于人员分工等现实原因,人为地分割成多个文件,导致难以做全局性的汇总、查询等。使用网表后,就不再需要多个文件多个表,一个表足够,结构是:年级 学生编码 语文 数学 英语 化学 该系统允许多用户同时登录使用,有完...

用Excel地VBA怎么样获取指定区域单元格里面地所有数据
建议楼主在VBA编辑器中打开监视窗口,添加一个监视对象Range("A1"),应用所有过程和所有模块,然后把这个展开这个监视对象左边的加号看看就明白了 图中每个加号【+】都可以展开

如何提取Excel表格中同一个数据的多个内容
A1),FIND(")",A1)-FIND("(",A1))。4. 使用自定义函数:如果需要提取的数据比较复杂,可以编写自定义函数来实现。在Excel中,可以使用VBA编程语言编写自定义函数,然后在需要提取数据的单元格中输入该函数即可。这些方法可以根据不同的情况选择使用,帮助您快速提取Excel表格中同一个数据的多个内容。

用Excel地VBA怎么样获取指定区域单元格里面地所有数据
使用for each遍历所选择的单元格即可。如下代码将选择区域的单元格输出在立即窗口。Sub Get_Data()Dim myRange As RangeDim myCell As RangeSet myRange = Application.InputBox("选择区域", Type:=8)For Each myCell In myRangeDebug.Print myCell.ValueNextEnd Sub ...

vb,vbA操作EXCEL怎么把指定数据复制到另一工作表符合条件的相应...
修改并保存()Dim IX = WorksheetFunction.Match([B1], Sheets("基础数据").Range("A:A"), 0)Range("A3:D3").Copy Sheets("基础数据").Cells(X, "a")Sheets("基础数据").SelectSheets("基础数据").Range("a" & X & ":" & "d" & X).Interior.ColorIndex = 3 '修改过的区域...

如何用函数或VBA调用(引用)另外一个工作表的数据
1、首先,在Excel表格中输入如图内容,以方便在VBA中进行读取和处理操作。2、进入VBA环境,可以按键盘上的“Alt+F11”进入。右击“Microsoft Excel对象”,从其右键菜单中选择“插入”-“用户窗体”项。3、接着向窗体中拖动一个“标签”和一个“按钮”,右击“按钮”,从其扩展菜单中选择“属性”项。...

怎样通过VB实现多个EXCEL中特定行列的数据的提取
以上步骤做好 然后打开名为 汇总 的excel 依次点击键盘 alt+F11 alt+i m 把以下代码复制进去 Sub 汇总数据()Application.ScreenUpdating = False p = "d:\\提取\\"f = Dir(p & "*.xls")Do While f <> ""Workbooks.Open p & f r = r + 1 ActiveSheet.Rows(3).Copy Workbooks("汇总....

用VBA实现Excel中数据的提取并且汇总
例子数据源:程序代码:运行结果:是不是很完美,程序文本:Option Explicit Sub 转换()Dim a1, a2(1 To 1000, 1 To 100), i, j, x, y, m, n Set x = CreateObject("Scripting.Dictionary")Set y = CreateObject("Scripting.Dictionary")a1 = Range("a1").CurrentRegion For i = 1 To...

相似回答