標題:
[發問]
字串不被接受,會變error 1004,找不出問題
[打印本頁]
作者:
mylene
時間:
2010-8-13 14:42
標題:
字串不被接受,會變error 1004,找不出問題
請問各位先進一個問題
程式如附件[attach]2395[/attach]
我用Sheets(nowSheet).Range("A1").Offset(nowRow, nowCol) = "一串文字"
來放置字串
可是在正在狀況下,執行到nowRow=22959時,字串會被拒絕
為了方便測試
附件的字串我加了一個空白,執行約2次就被拒絕
想很久了不明白,同樣一樣,同樣格式的字串
但就是有些會不被接受
不是七月撞鬼,但真的就是找不出問題
請各位高手幫忙看看
作者:
kimbal
時間:
2010-8-13 21:54
回復
1#
mylene
沒有詳細看,
可以試試把
Dim nowRow
換成
Dim nowRow As Long
作者:
GBKEE
時間:
2010-8-14 09:42
回復
1#
mylene
VBA的發問 請到[Excel程式區]
錯誤值1004
請參閱 Excel 的規格及限制(摘錄自Excel 說明)
http://forum.twbts.com/viewthread.php?tid=36&extra=page%3D1
儲存格內容的長度 (文字) 32,767 個字元。在一個儲存格中僅能顯示1,024 個字元;在資料編輯列顯示全部 32,767 個字元。
請修改你的程式碼如下 試試便知
Sheets(nowSheet).Range("A1").Offset(nowRow, nowCol) = Application.WorksheetFunction.Rept("A", 32767)
Sheets(nowSheet).Range("A1").Offset(nowRow, nowCol) = Application.WorksheetFunction.Rept("A", 32768)
作者:
mylene
時間:
2010-8-14 15:36
Dim nowRow As Long 很早以前試過,一樣會錯
第二個建議,我的狀況是存"01.02.03.04.05.06 "這樣長度的字串,都會錯
最煩的是,有時不會錯,有時會錯,這樣就不能判斷是什麼問題了
有測過以為是位置指錯,但是亂丟一個字串如"1111111111111111111"又可以存,偏偏就像上述那樣的字串存不進
又不是固定某一個字串存不進,真的很有撞鬼的感覺
但我相信excel沒有鬼
作者:
oobird
時間:
2010-8-14 20:56
試跑了半天也沒出錯。
這樣的程序效率太差了。我實在也沒耐心等六個小時來看看錯在哪裡!
作者:
GBKEE
時間:
2010-8-15 11:18
回復
4#
mylene
請問 1004 錯誤值內容 為何
[attach]2427[/attach]
作者:
mylene
時間:
2010-8-15 13:43
回復
6#
GBKEE
感謝GBKEE持續幫我回答這個問題
我的1004錯訊是==>執行階段錯誤 '1004' 應用程式定義或物件定義錯誤
我google過網路,找不到和我相同的問題,大部份都是copy時位置指定錯誤
我的部份,我實驗過,是字串會被拒,字串的長度並不是您所指的超過cell可容忍的長度
我的字串只有17的長度,而且,排列組合做下來,前面幾十萬都沒問題,可是就是會在執行6小時左右(有時更長,有時則更短)
同一行程式,就被標error 1004
這才是我想不透的點
一般來說,有錯,第一次執行時就會錯
真的不知道為什麼,每測一次就要那麼久,我也覺得很考驗耐心,程式碼又看不出什麼問題
真的要求助於各位高手了
作者:
GBKEE
時間:
2010-8-15 15:40
回復
7#
mylene
1004錯訊是==>執行階段錯誤 '1004' 應用程式定義或物件定義錯誤
試試加上這一行 運行速度會慢一些 待有錯誤時 打開即時運算視窗 查看 這4 個變數便知錯誤 在何處
Debug.Print nowSheet, nowRow, nowCol , Temp
Sheets(nowSheet).Range("A1").Offset(nowRow, nowCol) = Temp '有時這行會被拒絕置入
作者:
mylene
時間:
2010-8-15 16:45
回復
8#
GBKEE
感謝您的回覆
所有可猜疑的變數我都有用監看式看過
執行到 sheets(2).range("a1").offset(22959,66)="06.xx.xx.xx.xx.48" (對不起,字串記不起來)
一定會錯
曾在偵錯的狀況下
請它執行sheets(2).range("a1").offset(22959,66)="1111111111111",順利寫入
但下一行,sheets(2).range("a1").offset(22959,66)="06.xx.xx.xx.xx.48",它又是跳出錯誤訊
就是這樣像撞鬼的狀況,才會讓我想破頭也想不出原因錯在哪裡
求助於各位高手....難到要買乖乖請excel嗎?(說笑)
作者:
GBKEE
時間:
2010-8-15 17:13
回復
9#
mylene
執行到 sheets(2).range("a1").offset(22959,66)="06.xx.xx.xx.xx.48" (對不起,字串記不起來) 一定會錯
請試著把字串 找出來 大家參考
作者:
mylene
時間:
2010-8-16 10:36
回復
10#
GBKEE
這個字串是沒什麼特殊的
因為它單獨用指定時一樣寫得進去
但是同一行程式再run個一百多次後,又踢出一個
同樣格式,所以無法以某一個字串做特別處理
打個比方,您可能就懂我的意思
假設有一個100長度的陣列,我分別放1到100
偏偏有時它會45,或38被拒,下次又換56,72被拒
並不是那數字有什麼不一樣,都是數字,可是就會發生錯誤
又不是一開始就錯才很難找出問題在哪
作者:
yangjie
時間:
2010-8-20 23:24
sheets(2).range("a1").offset(22959,66)="06.xx.xx.xx.xx.48"
PC 對 06.xx.xx.xx.xx.48誤為數值錯誤
可嘗試字串前加一個 '
sheets(2).range("a1").offset(22959,66)="'06.xx.xx.xx.xx.48"
作者:
yangjie
時間:
2010-8-20 23:30
因為剛加入此家族,故還是小學生,沒有Download之功能,無法實際真正了解問題所在,但對Excel VBA很癡情。我很樂意參予
作者:
mylene
時間:
2010-8-26 10:32
回復
12#
yangjie
感謝您的回覆
在字串前加一個"'"也有試過,那一組過得去,接下來,其他有帶" ' "的又會遇到同樣的錯誤
已經不是加不加'的問題,而是,不知道為什麼excel會不接受字串
有鬼的又是在debug時,同一個位置,指定一個隨便設的字串,又接受
真的想破頭了
作者:
yangjie
時間:
2010-8-28 00:57
office 重灌,可以試一試(我有過此經驗,office可能部份Dll檔不見了)
作者:
mylene
時間:
2010-9-2 14:15
回復
15#
yangjie
感謝您的回覆
在我之前走投無路時,雖然理智上根本覺得不會是這個問題,但我還真的重灌過
結果當然沒有違背科學原則,一樣無效
作者:
yangjie
時間:
2010-9-3 14:43
真的很想知道原稿TryTry,可否Mail To me:
[email protected]
作者:
mylene
時間:
2010-9-3 16:14
回復
17#
yangjie
感謝您持續的回應
檔案已寄出去,麻煩您了
謝謝
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)