2014-01-26 119 views
0

我的問題是:我在大型工作簿中使用命名範圍。我需要從某些工作表x中的某個命名範圍中複製數據,然後將其粘貼到另一個命名範圍(如wksheet y)上,然後才能對它進行排序並將其顯示在wksheet z的另一個範圍中。Excel 2010使用多個命名範圍

我通過vba實現了所有這一切,除了屏幕閃爍時,我執行代碼很多。

我使用語句application.goto reference:=「」來選擇範圍,並且這將激活這些表單,因此閃爍回來。這劑量看起來很吸引人。

有沒有一種方法可以在不激活它們的情況下處理表單。

謝謝。

+0

是的,有一種方法。請閱讀[這個Q/A](http://stackoverflow.com/questions/10714251/excel-macro-avoiding-using-select)。 –

+0

**發佈您的當前代碼。** –

回答

1

兩件事情,以改善:

  1. 與啓動代碼:

    Application.ScreenUpdating = False

    這將防止閃爍。確保在Application.ScreenUpdating = True的末尾重新激活它。否則,Excel會表現得很奇怪,在宏完成後沒有正確更新屏幕。

  2. 而不是使用

     
        Application.Goto Reference="YourRangeName1" 
        Selection.Copy 
        Application.Goto Reference="YourRangeName2" 
        Selection.Paste 
    

    使用

     
    Range("YourRangeName1").Copy Target=Range("YourRangeName2") 
    

    這也將加快您的執行時間......

0

你可以試試:

Application.ScreenUpdating =假

使用這種代碼在你的VB項目的開始。

+0

謝謝大家。我用Peter Albert的,這很好 – gondwe