如何用VBA对某列排序,按条件取值复制入对应区域?

如图所示,如何用VBA替代图中的操作

已经尝试使用下面的代码

Range("D:D").Sort Key1:=Range("D1"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin, DataOption1:=xlSortNormal

但此代码只能实现对D列排序,其余的A B C E F 都不会动(只有D列按大到小排序了),希望高手指点如何用代码实现在一列排序时候,其他的列跟随一起动

因为表中的C列名称和D列都是要同步的,当D列按顺序排列了,C列不动是不行的,取值就是要复制C和D中的对应内容

图中是制作TOP10(取前10个值),在复制D列的时候,如何像图示中,避开“0”的无谓项目呢?

在复制E列的时候,如何避开“-”,实现图中的操作呢?
期待高手的代码

修改排序范围即可。
如果要排序A:D,将Range("D:D")改成Range("A:D")
如果要排序C:D,改成Range("C:D")
温馨提示:答案为网友推荐,仅供参考
相似回答