救助!執行階段錯誤 "1004",請內看 感謝了!
- 帖子
- 16
- 主題
- 2
- 精華
- 0
- 積分
- 23
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- office 2003
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2011-8-13
- 最後登錄
- 2011-8-19
|
救助!執行階段錯誤 "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)
------------------------------------------------------------------------------------- |
|
|
|
|
|
|
- 帖子
- 1572
- 主題
- 16
- 精華
- 2
- 積分
- 1521
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- office 2003
- 閱讀權限
- 150
- 性別
- 男
- 註冊時間
- 2010-5-1
- 最後登錄
- 2016-1-13

|
2#
發表於 2011-8-13 10:59
| 只看該作者
別用copy,系統剪貼簿無法容納太多的資料。
改存到陣列中,寫入新的位置,就不會有這種現象了。 |
|
|
|
|
|
|
- 帖子
- 16
- 主題
- 2
- 精華
- 0
- 積分
- 23
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- office 2003
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2011-8-13
- 最後登錄
- 2011-8-19
|
3#
發表於 2011-8-13 11:19
| 只看該作者
別用copy,系統剪貼簿無法容納太多的資料。
改存到陣列中,寫入新的位置,就不會有這種現象了。
oobird 發表於 2011-8-13 10:59 
只有懂一點點陣列(就只知道把數字或文字寫入陣列再用迴圈取出之類而已..),,但完全不知要怎開始下手 改存到陣列中,寫入新的位置 能否寫一個範列呢 感恩~~! |
|
|
|
|
|
|
- 帖子
- 1572
- 主題
- 16
- 精華
- 2
- 積分
- 1521
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- office 2003
- 閱讀權限
- 150
- 性別
- 男
- 註冊時間
- 2010-5-1
- 最後登錄
- 2016-1-13

|
4#
發表於 2011-8-13 14:58
| 只看該作者
其實還是看不懂你的問題。
看你的程式碼是複製到同一活頁簿,有何意義嗎?
For i = 1 To 100
Worksheets(Array("查詢股票")).Copy after:=Worksheets(2)
Next i
單一工作表複製100遍,為什麼要這樣?而且為什麼要Array("查詢股票")?看不出任何意義。 |
|
|
|
|
|
|
- 帖子
- 16
- 主題
- 2
- 精華
- 0
- 積分
- 23
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- office 2003
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2011-8-13
- 最後登錄
- 2011-8-19
|
5#
發表於 2011-8-13 15:26
| 只看該作者
本帖最後由 icestormerss 於 2011-8-13 15:33 編輯
其實還是看不懂你的問題。
看你的程式碼是複製到同一活頁簿,有何意義嗎?
For i = 1 To 100
Worksheets ...
oobird 發表於 2011-8-13 14:58 
用1到100 只是我用來測到底到在第幾張會出錯而已.我發現(今天的.)全都是在第48跟49張工作表時就一定出錯..
主要是要工作表複製後 再用WEB查詢(配合輸入股號,更新後(所以複製後的工作表內容會隨者股號而變動但基本格式是一樣的)存起來,
現在 全都是卡在那個問題上
(變成只要出錯..我就得關掉 重開 然後又要重新更新後才能再做後頭的工作)
不知我這樣說 懂嗎?怕我說的不夠清楚~~ 能不能請你寫一個簡單的範例 把工作表A 複製後 放入陣列中 ,再放到最後一個工作表之後? 感謝拉~~ |
|
|
|
|
|
|
- 帖子
- 1572
- 主題
- 16
- 精華
- 2
- 積分
- 1521
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- office 2003
- 閱讀權限
- 150
- 性別
- 男
- 註冊時間
- 2010-5-1
- 最後登錄
- 2016-1-13

|
7#
發表於 2011-8-13 18:11
| 只看該作者
能不能請你寫一個簡單的範例 把工作表A 複製後 放入陣列中 ,再放到最後一個工作表之後?- Sub yy()
- Dim a, i%
- a = Sheet1.UsedRange
- For i = 1 To 100
- With Sheets.Add(After:=Sheets(Sheets.Count))
- .Name = "w" & i
- .[a1].Resize(UBound(a), UBound(a, 2)) = a
- End With
- Next
- End Sub
複製代碼 |
|
|
|
|
|
|
- 帖子
- 16
- 主題
- 2
- 精華
- 0
- 積分
- 23
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- office 2003
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2011-8-13
- 最後登錄
- 2011-8-19
|
8#
發表於 2011-8-13 19:39
| 只看該作者
能不能請你寫一個簡單的範例 把工作表A 複製後 放入陣列中 ,再放到最後一個工作表之後?
oobird 發表於 2011-8-13 18:11 
感謝各位幫忙 我去試看看^^ |
|
|
|
|
|
|
- 帖子
- 16
- 主題
- 2
- 精華
- 0
- 積分
- 23
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- office 2003
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2011-8-13
- 最後登錄
- 2011-8-19
|
9#
發表於 2011-8-13 19:54
| 只看該作者
本帖最後由 icestormerss 於 2011-8-13 19:56 編輯
又來麻煩各位了
剛才我去執行 它出現 在那一行出錯(我完全沒有改動 ,我開一個全新空白的 再把程式碼 貼上後執行)
請問 那個問題是什麼意思呢?
怪了.我剛才去把工作表刪除(不小心連SHEET2跟3(預設的)都刪了)神奇的事發生了 居然沒有錯誤而順利執行了...
Sub yy()
Dim a, i%
a = Sheet1.UsedRange
For i = 1 To 50
With Sheets.Add(After:=Sheets(Sheets.Count))
.Name = "w" & i
.[a1].Resize(UBound(a), UBound(a, 2)) = a << 執行階段錯誤 1004:應用程式或物物定義上的錯誤
End With
Next
End Sub |
|
|
|
|
|
|
- 帖子
- 1572
- 主題
- 16
- 精華
- 2
- 積分
- 1521
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- office 2003
- 閱讀權限
- 150
- 性別
- 男
- 註冊時間
- 2010-5-1
- 最後登錄
- 2016-1-13

|
10#
發表於 2011-8-13 19:59
| 只看該作者
|
|
|
|
|
|