返回列表 上一主題 發帖

[發問] 關於此匯整多個檔案在一個內 如何提高效率或不開啟檔案即可複製?

[發問] 關於此匯整多個檔案在一個內 如何提高效率或不開啟檔案即可複製?

目前已將畫面刷新,自動計算,更新連結,提醒皆關閉
但只是抓取不到100個檔案就會跑將近10分鐘......
不知還有什麼方法可加快


數據抓取 - 如何不開啟檔案.zip (449.98 KB)
2015-09-10_214911.png
2015-9-10 21:59

回復 1# starry1314


1.不開啟檔案(只是看不到,還是有開啟的),並不表示可以加快速度,
  有時不使用正規Workbooks.open方法,不見得可以得到更快的速度!
2.開啟檔的速度,大部份取決於檔案的大小(同一檔工作表太多也是影響因素),
  配置太多常駐公式(尤其是陣列公式.大殺手)更是雪加霜!
3.上傳附檔是您實際檔案嗎?
  若不是,應上傳正確資料結構的檔案,並詳明需求結果,
  VBA就是要針對不同需求,寫出貼切的專案,才符合效益,
  這上傳附檔,看來是想讓有類似需求的人套用,想以一擋百,
  但反而讓程式變複雜(還是您本來就需要這麼複雜)!
 
  ∼∼∼咱改不動了∼∼∼

TOP

回復 2# 准提部林
1.不開啟檔案(只是看不到,還是有開啟的),並不表示可以加快速度,
  有時不使用正規Workbooks.open方法,不見得可以得到更快的速度!
了解
2.開啟檔的速度,大部份取決於檔案的大小(同一檔工作表太多也是影響因素),
  配置太多常駐公式(尤其是陣列公式.大殺手)更是雪加霜!
了解~常駐公式真的很多
3.上傳附檔是您實際檔案嗎?
  若不是,應上傳正確資料結構的檔案,並詳明需求結果,
  VBA就是要針對不同需求,寫出貼切的專案,才符合效益,
  這上傳附檔,看來是想讓有類似需求的人套用,想以一擋百,
  但反而讓程式變複雜(還是您本來就需要這麼複雜)!
附檔是我目前應用,因我所需要抓取的數據是工作簿裡面的部分範圍,因每天所需要抓取的範圍都不一樣 這個附檔剛好可以讓我方便更改所要範圍
其實我只是想要可選擇頁面及部份範圍,並匯總在一起~因所找到的大部分都是彙整整張頁面

TOP

回復 3# starry1314

若只是讀取各檔案的值,應該避免使用.Select、Activate 也會讓程式速度加快很多,
單格寫入儲存格不如利用陣列一次性寫入,都會使整體性的速度差異變快很多(所謂變很多是指2倍以上)

TOP

回復 4# lpk187
單隔寫入使用陣列
因我是複製一個範圍 如(A2:H20) 也是可以一樣的方法全部丟掉陣列裡面去嗎?

TOP

本帖最後由 lpk187 於 2015-9-11 11:55 編輯

回復 5# starry1314

這是一個好問題,一個範圍和一組陣列,哪一個快,我沒實際去比較過,不過你有沒有發現各版大寫的程式為什麼鮮少使用Copy呢?
我在想Copy,使用的資源一定比陣列來的大陣列只是讀取值,而剪貼簿則不然,它不只讀取值,甚至於還有格式,文字...等等各式Range的資訊。
所以當處理的資料多的時候,就會有差別了

TOP

回復 5# starry1314


如果要的還包含格式
那就用 copy 吧
反之, 用 ar

TOP

回復 6# lpk187
恩恩~我有注意到!copy與陣列速度真的差距非常大
但之前所能寫出來的就是copy這種笨方式...陣列就不懂怎麼搞∼要再多學習

TOP

回復 7# jackyq

是的

只需要值即可∼我再找找看看如何丟入陣列

TOP

回復 9# starry1314
在另一个论坛里相同的问题应该也是你问的吧?那里已经给过你代码了,这里就不再重复了。
世界那麼大,可我想去哪?

TOP

        靜思自在 : 待人退一步,愛人寬一寸,就會活得很快樂。
返回列表 上一主題