使用vba中的合并单元格对行进行排序

时间:2018-04-26 06:20:48

标签: excel vba excel-vba

我正在使用excel-vba,我必须按列Q的升序对行进行排序,其值为date。但我遇到了一个错误:

  

此操作需要相同大小的合并单元格

此外,我还有这段代码是错误的来源。

代码:

Sheet4.Range("Q5:Q" & lastrow).Sort Key1:=Range("A5"), Order1:=xlAscending, Header:=xlNo

以下是我想要排序的专栏的主页

enter image description here

1 个答案:

答案 0 :(得分:1)

Excel无法处理具有合并和未合并单元格混合的范围。您可以单独对列Q进行排序,但不能对列Q上的整个表进行排序。

以下是您需要构建到VBA中的解决方法:

对于包含合并单元格的每列: - 取消细胞 - 选择细胞 - 转到特殊...空白单元格(将选择Q6,Q8等 - 在所有单元格中输入公式= A5 - 复制列中的所有单元格并复制/粘贴值

对所有列完成后,您可以对其进行排序

排序后,您可以重新合并单元格以返回到您开始的位置。

这是一种不那么痛苦的编码,而且非常有效。