Board logo

標題: 執行階段錯誤'91': [打印本頁]

作者: hugh0620    時間: 2011-12-29 10:56     標題: 執行階段錯誤'91':

本帖最後由 hugh0620 於 2011-12-29 11:49 編輯

小弟在撰寫完程式碼後~ 執行發生了  執行階段錯誤'91': 的問題
已經有搜索過以前的文章~ 但是還是無法克服~
http://forum.twbts.com/viewthrea ... F9%BB%7E&page=1
文章中Hsieh大大說的部份~ 有檢查過~ 都有設定~
請大大們指導一下~
因為有些程式是照這樣的方式寫~ 執行時~ 有時沒有問題~ 有時又會出現錯誤訊息~
[attach]8951[/attach]

補提供一個範例~ 讓大大們進營測試
[attach]8953[/attach]
作者: GBKEE    時間: 2011-12-29 15:24

回復 1# hugh0620
  1. Private Sub CommandButton1_Click()
  2. Dim st1 As String, ed1 As String             '宣告為字串
  3. Dim B As Range, C As Range, a As Integer, i As Integer
  4. a = Sheet3.Range("D65536").End(xlUp).Row     '***Sheet4 D欄沒資料  A永遠是1
  5. For i = 3 To A                                '*** A=1 不會執行迴圈
  6.     '月份1
  7.     If Sheet3.Range("AD" & i) = "" Then
  8.        GoTo 1
  9.     Else
  10.        If Sheet3.Range("AE" & i) = "" Then
  11.             st1 = Sheet3.Range("Z" & i)     '傳回字串
  12.             ed1 = Sheet3.Range("AA" & i)    '傳回字串
  13.        Else
  14.             st1 = Sheet3.Range("Z" & i)     '傳回字串
  15.             ed1 = Sheet3.Range("AJ" & i)    '傳回字串
  16.        End If
  17.       
  18.         Set B = Sheet4.Columns("E").Find(st1, LookIn:=xlValues)                  'LookIn:=xlValues 內容為字串
  19.         Set C = Sheet4.Columns("E").Find(ed1, LookIn:=xlValues)
  20.         If Not B Is Nothing And Not C Is Nothing Then                            'B , C 皆須為Range(有找到)
  21.             Sheet3.Range("AS" & i) = Application.Sum(Sheet4.Range(B.Offset(, 1), C.Offset(, 1)))
  22.         End If
  23.     End If
  24. 1
  25. Next
  26. End Sub
複製代碼

作者: hugh0620    時間: 2011-12-29 15:45

回復 2# GBKEE

Dear G大大~
很感謝你的解答~
但~ 小弟還是有一些問題~ 想向您請教~
因為也資料格式(日期.常數.字串)會造成程式執行時產生錯誤~
所以~ 小弟在儲存格的日期格式上~ 其實有用date的方式讓相關的欄位都是用date的函數加以整合~
就是會發生錯誤~
看大大的解答是將日期轉成字串~ 再去查詢~
是否直接用日期查詢會有問題嘛??
還是以後遇到日期格式~ 先轉成字串~ 再去查詢比較沒問題??
作者: GBKEE    時間: 2011-12-29 17:10

回復 3# hugh0620
工作表上日期的搜尋,與儲存格的格式設定有關.
你的行事曆 E欄格式是自訂為文字, 修改為 日期格式 *2001/3/14  ,你的程式就可用了 .
作者: hugh0620    時間: 2011-12-29 17:26

回復 4# GBKEE

G大大~

其實後來小弟~ 在執行中~ 還是有執行上的錯誤~
也花了1~2HR才全部排除所有錯誤(有些是資料面使用者輸入錯誤的資料~ 有些是資料格式上的問題)~

大大是否其他相關日期用Find的使用想法~
例如: 資料的建立/格式尚的設定.....等等
作者: lcc_seven    時間: 2012-1-3 18:02

我的習慣是使用Excel內建的資料驗證,可以限制使用者輸入的格式及範圍

如果不是特殊需求,應該是很夠用了

這樣一來,程式也不會吃到錯誤的資料格式,大大減少錯誤的發生機率




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)