Tag: mergesort

Excel VBA收集合并sorting

我正试图直接在集合上实现MergeSort。 这是从用于C ++的伪代码移植过来的。 但是,MergeSort方法正在返回没有数据。 我的testing用例正在使用{1,2,3,2,4}的input集合,并正在返回Count = 0的集合。问题出现在removeDupl = True和removeDupl = False。 代码下面是一些debugging日志的结果,这些日志似乎显示了mergesort在列表的3个成员中部分执行。 为什么该方法没有返回值? Private Function mergeSort(col As Collection, Optional removeDupl = True) As Collection ' 'Execute a Merge sort 'removeDupl = True yields a sorted collection with unique values 'removeDupl = False yields a sorted collection with non-unique values ' If col.Count = 1 Then […]

使用唯一值在Excel中创build一行信息

这是我的第一篇文章。 我目前正在开发一个工作项目,要求我使用几个不同的工作表来创build一个邮件主工作表,以便进行邮件合并。 工作表包含有关不同购买的信息,每个购买者都有自己的ID号码。 下面是我的电子表格现在看起来像(但是我有更多的列)的例子: ID Salutation Address ID Name Donation ID Name Tickets 9 Mr. John Doe 123 12 Ms. Jane Smith 100.00 12 Ms.Jane Smith 300.00 12 Ms. Jane Smith 456 22 Mr. Mike Man 500.00 84 Ms. Jo Smith 300.00 我想要做的是以某种方式对我的数据进行sorting,以便具有相同唯一标识符(ID)的每个标签在同一行上排列。 例如ID 12 Jane Smith – 所有的信息都会以她的ID号码显示出来,ID 22将会与22等相匹配。 当我将所有的电子表格合并在一起时,我都按身份证号码sorting,但问题是,并不是所有捐款都买了票,有的人刚刚买票,也没有我们,所以sorting不起作用。 希望这是有道理的。 提前致谢。

在VBA中select(大)范围内计算不同值的数量?

如何计算VBA中所选(大)范围内的不同值(数字和string混合)的数量? 我这样想: 1.将数据读入一维数组。 2.sorting数组(快速或合并sorting)需要testing哪个 3.如果对数组进行sorting,只需计算不同值的个数: if(a[i]<>a[i+1]) then counter=counter+1 。 这是解决这个问题的最有效的方法吗? 编辑:我想在Excel中做到这一点。