繁体   English   中英

Excel VBA在不同工作簿中选择范围以进行排序

[英]Excel VBA Selecting Range in different workbook in order to sort

首先让我感谢stackoverflow上的所有人。 在搜索Excel VBA问题的解决方案时,Google已多次带领我进入该论坛,通常我会在这里找到所需的信息。 那就是

我正在构建一个宏或一组宏,这些宏或一组宏从一个扩展表中获取选定的数据,并将其复制到新创建的工作簿中的另一个工作表中。 我只剩下对特定范围进行排序的最后一个难题,当尝试在我想要对其进行排序的新工作簿中选择特定范围时,始终遇到运行时错误'1004'。 我已经尝试使用类似于下面示例的代码以及使用Cells来定义范围的多种解决方案。 目前,我在搜索解决方案时浏览过Google。

With nfmBook.Worksheets("Reading NFM")
nfmBook.Sheets("Reading NFM").Activate
nfmBook.Sheets("Reading NFM").Select

nfmBook.Sheets("Reading NFM").Range("B" & sortStart & ":K" & sortEnd).Select

Selection.Sort Key1:=Range("B"), Order1:=xlAscending, Key2:=Range("K") _
    , Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
    Orientation:=xlTopToBottom, DataOption1:=xlSortTextAsNumbers, DataOption2 _
    :=xlSortTextAsNumbers

    Cells(nfmRow, 11).Select
    ActiveCell.FormulaR1C1 = "=SUM(Cells(sortStart,11),Cells(sortEnd,11))"


End With

您尝试过这种方式吗? (更新)

Set SortRange = nfmBook.Sheets("Reading NFM").Range("B" & SortStart & ":K" & SortEnd)
SortRange.Sort Key1:=SortRange.Cells(1, 1), Order1:=xlAscending, _
Key2:=SortRange.Cells(1, 10), Order2:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers, DataOption2:=xlSortTextAsNumbers

SortRange.Cells(1,1)是范围=“ B”&SortStart的第一行的第一个单元格

SortRange.Cells(1,10)是范围=“ K”&SortStart的第一行的第十个单元格

我希望这能奏效(对我而言,它能奏效)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM