2014-10-06 107 views
0

有没有办法将这些命令合并为一个?Excel - VBA - 范围选择变慢PC

Worksheets("Agent html").Select 
Range(Cells(7, TotalCallsRow), Cells(lastrow, TotalCallsRow)).Copy 

当我给:

Worksheets("Agent html").Range(Cells(7, TotalCallsRow), Cells(lastrow, TotalCallsRow)).Copy 

它返回我的错误

应用程序定义或对象定义的错误。

在此先感谢。

回答

1

它应该是:

Worksheets("Agent html").Range(Worksheets("Agent html").Cells(7, TotalCallsRow), Worksheets("Agent html").Cells(lastrow, TotalCallsRow)).Copy 

这可能是清洁器,以限定工作表作为像对象变量:

Dim ws As Worksheet 
Set ws = Worksheets("Agent html") 

ws.Range(ws.Cells(7, TotalCallsRow), ws.Cells(lastrow, TotalCallsRow)).Copy 
+0

工程很好,非常感谢 – Golemic 2014-10-06 15:57:11

0

您在Range内使用Cells,我不确定这是否被允许。无论哪种方式,尽量不要使用.Select

Dim wksht As Worksheet 
Set wksht = Worksheets("Agent html") 
Dim rng As Range 
rng = wksht.Range(Cells(7, TotalCallsRow), Cells(lastrow, TotalCallsRow)) 
rng.Copy 

都行,你在上面问什么没有做出任何选择。我还没有测试Range(Cells,但我不能帮助,因为我不知道TotalCallsRow是什么?

+0

TotalCallsRow是列的只是数量。谢谢你,它的工作原理! – Golemic 2014-10-06 15:59:03