返回列表 上一主題 發帖

救助!執行階段錯誤 "1004",請內看 感謝了!

救助!執行階段錯誤 "1004",請內看 感謝了!

本帖最後由 icestormerss 於 2011-8-13 14:57 編輯

由於需要 將工作表 複製 但發現在複製到次數大約5到2 30次時(大都在20次左右)就會產生一個錯誤

錯誤:執行階段錯誤 "1004": class worksheet的copy方法失敗

一開始我以為是我寫錯.然後發現好像不是 我就好奇的實驗.只要我的工作表(要複製的)內容越多(像有比較圖)有時大約10次之內就會出現錯誤

隨者我把工作表內容越簡精它出錯的次數就越後面(完全空白的工作表我試過到600次都還不會出錯..)

然而,只要出了錯誤,我重開EXCEL後,錯誤不見了,再重行執行程式後問題一樣存在,只是會發生錯誤的次數,可能又變動(也許剛才第10次出錯,這次換20次)


不知有沒有高手能幫我解決這問題?

我只是想單純的複製工作表到最後一個位置去

原本寫的是
shtcount =worksheets.count
worksheets(1).copy after:=worksheets(shtcount)

-------------------------------------------------------------------------------------

本帖最後由 icestormerss 於 2011-8-14 12:07 編輯

M剛才我單純在工作表上只有一個WEB查詢連結時我去執行程式 結果要到25X才會出錯
錯誤:
執行階段錯誤 1004:
是應用程式或物件定義上的錯誤
請問這是什麼問題(也是用剛才上傳的檔跑的)只是改成次數300

剛發現一些新的問題 我去試看看..感謝OOBIRD大 花時間幫我呀!

TOP

Sub Macro2()
For i = 1 To 200
    Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)
   ActiveShee ...
oobird 發表於 2011-8-14 11:31



   -_-!!..難不成是我主機不夠力?怪了 我用上頭的跑法 很快就出問題了說

TOP

Sub Macro2()
For i = 1 To 200
    Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)
   ActiveSheet.Name = "w" & i
   Next
End Sub
我這樣200次也沒問題呀?

TOP

本帖最後由 icestormerss 於 2011-8-14 11:09 編輯
還是沒說到重點
如你sheet1的a5是2317,你用任何方法copy,每個新的表上都是2317,不可能改變成別的。
而 ...
oobird 發表於 2011-8-14 10:32


SORRY 忘了附檔 我再弄一次
股票代碼更新1.rar (7.79 KB) <<這是根據OOBIRD大的提供的程式碼執行的

在SHEET1的B1是參數來源格(WEB 查詢功能)
只要數字變動在右下的E8(右擊可以打開參數>以SHEET1!$B$1格為參數值來源)會整個自動更新

然而 如果是採用worksheets(1).copy after:worksheets(worksheets.count)方式
當SHEET1的B1數字變動只會更新SHEET1上的E8
當W1的B1數字變動也只會更新W1上的E8

使用PASTE方式的做法 也都會有WEB查詢
只是變成W1工作表的E8也是連結到SHEET1的B1(但我需要的是連結在W1上的B1)


而且用巨集的方式沒法錄到手動改參數來源格,我也不知能不能透過VBA改寫

再次感謝你撥時間回覆^&^

TOP

還是沒說到重點
如你sheet1的a5是2317,你用任何方法copy,每個新的表上都是2317,不可能改變成別的。
而你點擊a5時會自動更新,這是Worksheet_SelectionChange事件,你要貼上來別人才有可能幫你改的。

TOP

回復 15# icestormerss


昨晚花幾小時在那查看看網路資料及測試
發現真的好像都是固定次數就會出錯
複製前張數--複製中出錯的張數
2---------------105
3---------------103
4---------------102
5----------------99   
6----------------99   
7----------------98   
8----------------96   
9----------------95   
10---------------93   
另外我發現 如果用的是 :
worksheets(1).copy
就算是到了200張workbooks也不會出錯呢..

然後我就想到.不然.先用worksheets(1).copy 後再用 MOVE的方法移回來,結果錯誤換成104:MOVE 方式失敗..(大約是100張)

我在想會不會是對於在一定時間內(打開-關閉EXCEL)寫入同一workbook 內的有次數限制? 不然為什麼 用worksheets(1).copy 到200也不會出錯?

另外OOBIRD大的程式碼現在都很順利可以執行.但還是卡在同一個問題 WEB查詢的參數連結格 沒法連在自己工作表上說 不知有人有法子嗎??
(原本是想說不然就複製過去後再用程式去改他的連結.但發現(我先用巨集錄)根本錄不到,我也完全不知怎下手寫)

TOP

本帖最後由 icestormerss 於 2011-8-13 21:33 編輯
看不懂。如果代碼是在A5輸入(輸入後按下ENTER,進行更新)~這段程式在哪裡?你應該修改這段程式呀。
oobird 發表於 2011-8-13 21:17



這樣說好了 如果A5格 我輸入2374 正常來說 WEB查詢會自動更新(這我有設好了)
按以前我直接用COPY過去後 新的工作表上的WEB查詢連結會自動連結在新的工作表上的A5 而不是在原本(SHEET1)上的A5

換言之.以前我用COPY在複製後 二個工作表各自有各自的WEB 查詢功能
(在SHEET1上的A5輸入數字只會更新SHEET1的,在W1上的A5輸入數字也只會更新W1的)
但現在郤會變成 W1上的連結到SHEET1上的A5(當SHEET1上的A5格數字變動時二張工作表會一起更新到同一家公司上)

當然這部份可以手動改,不過WEB查詢不止一個 如果每一個COPY過去的都要一個一個WEB 查詢改它 ,就麻煩了說

不知我這樣說 會不會說不明白呢^^

我剛才試者用巨錄看能不能錄到手動點擊 [WEB查詢區]>參數上 以下列儲存格做為參數值來源
結果根本錄不到說~~

http://jinnsblog.blogspot.com/2008/10/excel-query-dynamically-update-data.html <<自動更新的WEB 查詢 我是看這裡學的

TOP

看不懂。如果代碼是在A5輸入(輸入後按下ENTER,進行更新)~這段程式在哪裡?你應該修改這段程式呀。

TOP

本帖最後由 icestormerss 於 2011-8-13 21:18 編輯

回復 12# oobird


有了可以連同WEB查詢功能都COPY過去了.不過..出現1個新問題(原本另一個問題好了)


1:如果代碼是在A5輸入(輸入後按下ENTER,進行更新)
剛COPY過去的工作表雖然也有WEB查詢功能在但郤不是連結在同一工作表內的A5而是連結在SHEET1中的A5格


:收回第二個問題 ,再我存檔後重開 可以正常自動按目標格(A5)內的資料數字變動而自動更新了^^



OOBIRD大 針對第一個問題有法子嗎^^?

TOP

        靜思自在 : 小事不做、大事難成。
返回列表 上一主題