2012-11-11 108 views
0

排序命令在excel宏未打开新工作表时起作用。如果excel宏试图操作由宏打开的工作表,相同的排序命令不起作用。vba excel:排序其他工作簿

With ActiveWorkbook.Worksheets("Sheet").Sort 
    .SetRange Range("A1:D" & replacementRow - 1) 
    .Header = xlNo 
    .MatchCase = False 
    .Orientation = xlTopToBottom 
    .SortMethod = xlPinYin 
    .Apply 
End With 

声明用于打开工作簿

Workbooks.Open (Cells(1, 1)) 
+0

你的问题不清楚。你有哪些开放的命令?你是说你的宏与当前打开的工作簿表一起工作。但是,如果在当前工作簿窗口中打开另一个工作簿,它不起作用?你使用了哪些其他的宏处理宏? – bonCodigo

+0

您需要更改'Activeworkbook.Worksheets(“Sheet”)'部件,以便引用新的工作表。如果您共享打开新工作表的代码部分,则可能会更容易提供帮助。 – mattboy

回答

1

我假设你在细胞(1,1)链接到一个工作簿?如果是这样的话:

Dim wb As Workbook 
Set wb = Workbooks.Open(Cells(1, 1)) 

With wb.Worksheets("Sheet1").Sort 
    .SetRange Range("A1:D" & replacementRow - 1) 
    .Header = xlNo 
    .MatchCase = False 
    .Orientation = xlTopToBottom 
    .SortMethod = xlPinYin 
    .Apply 
End With 
+0

感谢您的建议,但也没有奏效。我在最近打开的工作簿中所做的其他所有事情都按预期行事。 –