2014-10-06 90 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