返回列表 上一主題 發帖

編譯錯誤,於隱藏模組

2003版是1.1
2002是1.0

TOP

回復 13# 周大偉


    應是你的月曆控制項不存在,讓EXCEL處於設計模式
看看有沒有看到月曆控制項,若是沒有就設置上去
因為你說其他電腦可以執行,有可能遺失控制項
從工具/設定引用項目中檢查
勾選Microsoft Calendar Control 2007(這是2007版中所見名稱)
沒記錯的話2003版前應該是日曆控制項?.0
若是沒有此控制項可勾選,可能是那台電腦沒有安裝Access
重新安裝Access看是否能解決問題
學海無涯_不恥下問

TOP

這樣的話幾乎可以斷定如4樓Min版主所說的,設定引用項目遺失的問題了。
在設定引用項目中找到遺失的引用,取消勾選。然後最好儲存後重啟!
若還是不行,應該這台電腦沒有把日曆控件拉出來!

TOP

本帖最後由 Hsieh 於 2010-11-24 19:38 編輯

oobird大大,Solely大大, 两位好,先謝過回應
两位大大的指導, 問題還是解決不來,
Solely大大所指出, 不知我是否有理解錯, 還請Solely大大再度指導, 因按其指示修改還是不成功, 謝謝!!
oobird大大, 已按其修改處修改, 程式錯誤處呈現尾處Calendar1.Visible = False,請大大教導, 謝謝!!

Private Sub Worksheet_SelectionChange(ByVal T As Range)
dim C as range
If T.Count > 2 Then End
For Each C In [d15:d35]
If C.Value >= 1 And C.Value < 500 Then C.Borders(6).LineStyle = 1
Next
If Not Application.Intersect([h15:h35], T) Is Nothing Then
If T.Borders(6).LineStyle = 1 Then
T.Borders(6).LineStyle = 0
Else
T.Borders(6).LineStyle = 1
End If
ElseIf T.Address = "$I$10:$J$10" Then
   Calendar1.Visible = True: Calendar1 = Date
   Else
   Calendar1.Visible = False
End If
End Sub

TOP

If T.Count > 2 Then End為什麼寫兩行?
把第一行改成dim C as range試試。

TOP

先謝過各大大回應, 衷心感謝,
今日按HSIEH大大的教指導, 解除保護, 在公司中再開啟該檔案, 如HSIEH大大所言, 跳出錯誤處, 但小弟實看不出錯在何處, 而為何小弟家中及公司中的個人電腦則沒有問題, 請大大協助修改,
solely大大, 謝謝回應, 大大所指出之處, 小弟明天會回公司試試, 衷心感謝回應,
我現把該檔案上傳, 請大大協助修改, 實感激萬分....
aa.rar (31.27 KB)

TOP

我猜.....
[I10] = Calendar1 的[I10] 會跳異常
要改成cells(10,9)
另外For Each C In [d15:d35]
要先Dim C ,至於 [d15:d35]也要以cells方式表示

TOP

謝謝提示, 明天回到公司, 試試

TOP

你解除VBE密碼後,在出現錯誤的電腦中執行
看出現錯誤時的中斷點是哪一行?
就知道問題出在哪裡
依此程式碼會出錯得應該只有月曆控制項
你先自行檢查看看
學海無涯_不恥下問

TOP

謝謝大大們,
小弟不才, 實看不端倪, 現把程式碼傳上,望大大們指導,實感激,謝謝!!
Private Sub Calendar1_Click()
[I10] = Calendar1
Calendar1.Visible = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal T As Range)
If T.Count > 2 Then End
If T.Count > 2 Then End
For Each C In [d15:d35]
If C.Value >= 1 And C.Value < 500 Then C.Borders(6).LineStyle = 1
Next
If Not Application.Intersect([h15:h35], T) Is Nothing Then
If T.Borders(6).LineStyle = 1 Then
T.Borders(6).LineStyle = 0
Else
T.Borders(6).LineStyle = 1
End If
ElseIf T.Address = "$I$10J$10" Then
   Calendar1.Visible = True: Calendar1 = Date
   Else
   Calendar1.Visible = False
End If
End Sub

TOP

        靜思自在 : 【做人的開始】每一天都是故人的開始,每一個時刻都是自己的警惕。
返回列表 上一主題