VBA複製貼上效率問題

2022-02-05 10:57:06 字數 846 閱讀 3420

好久沒寫文章了,最近有點忙,現在華為做prs二次開發,這兩周一直在做澳大利亞的乙個需求,由於這個需求比較特殊,報表中用到的102個kpi是從五張sheet也中取值,並且kpi在原始資料的sheet頁中的順序也是混亂無任何滾了的。

所以只能手動找出每個圖表中的系列(基本上也就是原始資料sheet頁中的kpi,個別十幾個是通過計算得到的)。又由於根據不同的cluster,需要在同一張圖表中顯示不同的資料。也就是一張圖表共不同的cluster使用。

由於圖表中只需要顯示最近28天的資料。這樣的話,最好的辦法就是從原始資料中按cluster和日期排序,然後根據選擇顯示的cluster,將資料拷貝到另外乙個sheet頁中,再將建立的圖表的資料來源繫結到此sheet的相應的區域。至於這個需求和怎麼實現的,就不多說了。其中關於複製貼上這塊,想隨便嘮叨幾句。

由於需要的特殊性,我們需要對每個單元格進行拷貝貼上,28天即28行,102個kpi即102列,在加上kpi的title,時間列和cluster列,共29行,104列

開始的時候使用range.copy 和range.pastespecial 效率很低,要8-9秒的時間,開上去excel像是假死一樣,設定進度條吧,每次都顯示客戶肯定不樂意。

下面做個簡單的測試,下面截圖是源**和執行的時間間隔:

由於我們是逐個單元格進行拷貝和貼上的,當然如果格式沒特殊需要,當然可以使用rang.value = range.value這種方式直接賦值,效率將大大的提高。下面截圖是這中方式的源**和執行的時間間隔:

這樣使用時間可以縮短到1-2秒的時間,在excel上表現的也只是一閃而過。 所以:在寫vba**的時候,無論是cells或者range,能使用value賦值,盡量使用這種方式,盡可能不用copy和paste。效率也會提高很多。

VIM複製貼上

vim作為最好用的文字編輯器之一,使用vim來編文件,寫 實在是很愜意的事情。每當學會了vim的乙個新功能,就會很大地提高工作效率。有人使用vim幾十年,還沒有完全掌握vim的功能,這也說明了vim的強大。而這樣何嘗不是一件好事呢,只要有的學習,就有的提高。最近使用vim來寫部落格,發現在vim中貼...

vim 複製貼上

傳統軟體的複製 copy 剪下 cut 貼上 paste 在vim中對應的是yank,delete和put。在vim中的複製,刪除,替換等操作的臨時內容,都會儲存在暫存器中。下面分享下vim中的暫存器和相關的基本的操作。無名暫存器 兩個雙引號,vim中叫做無名暫存器。x,s,d,c,y等操作,如果不...

複製 貼上2

文字編輯器的乙個最重要的機能就是複製 貼上。joi社現在正在開發一款能夠非常高速地進行複製 貼上的文字編輯器,作為joi社一名優秀的程式猿,你擔負起了複製 貼上功能的測試這一核心工作。整個joi社的命運都系在你的身上,因此你無論如何都想寫出乙個正確且高速的程式來完成這項工作。具體的做法如下所示。檔案...