进行排序,首先让我感谢在stackoverflow的所有人。谷歌在我寻找解决Excel VBA问题的解决方案时多次引导我参加这个论坛,并且我通常会在这里找到我需要的。这就是说,Excel VBA在不同的工作簿中选择范围以便对
我在建设的过程中宏或设置需要一个spreadheet并将其复制在新创建的工作簿中选择数据到另一个工作表的宏。当我尝试在新工作簿中选择一个特定的范围时,我将排序特定范围并继续得到运行时错误'1004'。我尝试过使用类似于下面示例的代码以及使用单元格来定义范围的多个解决方案。在搜索解决方案时,我已经在这个阶段使用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
是否确定变量'sortStart'和'sortEnd'返回正确的开始和结束行? – user3561813 2015-02-10 15:08:28
在你的'.Sort'行中,每个Range前面都有一个。所以它是'.Range(..'并从你的'With'语句中继承适当的工作簿和工作表,否则它会尝试使用工作表中不存在于'nfmBook'中的范围,它是什么导致了错误 – tigeravatar 2015-02-10 15:14:58