Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 排序,然后重新排序_Vba_Sorting - Fatal编程技术网

Vba 排序,然后重新排序

Vba 排序,然后重新排序,vba,sorting,Vba,Sorting,我尝试将买入列从最大到最小排序,然后复制并粘贴到另一列,然后将卖出列从最大到最小排序,然后再次复制并粘贴到另一列。代码不会排序、复制/粘贴、重新排序,然后复制/粘贴;换句话说,它只保留购买的原始排序。有没有办法把买的东西分类,粘贴到别处,然后把卖的东西分类,然后照样复制?我正在考虑尝试一个do循环,但我不确定为什么我不能用一种更简单的方式来实现。任何见解都会有所帮助。谢谢大家! ' buys rows("3:3").Select Selection.AutoFilter

我尝试将买入列从最大到最小排序,然后复制并粘贴到另一列,然后将卖出列从最大到最小排序,然后再次复制并粘贴到另一列。代码不会排序、复制/粘贴、重新排序,然后复制/粘贴;换句话说,它只保留购买的原始排序。有没有办法把买的东西分类,粘贴到别处,然后把卖的东西分类,然后照样复制?我正在考虑尝试一个do循环,但我不确定为什么我不能用一种更简单的方式来实现。任何见解都会有所帮助。谢谢大家!

' buys

    rows("3:3").Select
        Selection.AutoFilter

    ActiveSheet.AutoFilter.Sort.SortFields.Add Key:=Range("D3" _
        ), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveSheet.AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
       .SortMethod = xlPinYin
        .Apply
   End With

   'copy top ten buys
    Range("A5:I14").Select
    Selection.Copy
    Range("k3").Select
    ActiveSheet.PasteSpecial
    Application.CutCopyMode = False 

' sells
    ActiveSheet.AutoFilter.Sort.SortFields.Clear  
    ActiveSheet.AutoFilter.Sort.SortFields.Add Key:=Range("E3" _
        ), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveSheet.AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

    Range("A5:I14").Select
    Selection.Copy
    Range("k14").Select
    ActiveSheet.paste
    Application.CutCopyMode = False

因为您只添加了一个新的排序键,所以第二个排序将出现在“买入”和“卖出”列上。执行Sortfields.clear,然后再进行第二次搜索。

您不需要使用
Select
Selection
ActiveSheet
,请明确使用您在代码中描述的范围(例如
范围(“A5:I14”)。复制范围(“K3”)
。您还没有告诉我们哪些单元格包含您的数据,以及您如何区分买卖。您可以在粘贴后清除副本,并在排序后清除排序。发送标题行的图片或至少“买”和“卖”的位置,这是非常可行的。我试图发布一个PDF图像,但不确定如何…买入是D列,卖出是E列。文件标题:交易日期,计划号,文件集,买入金额,卖出金额,净金额,买入股票,卖出股票,净股票