2015-01-07 47 views
2

我有一個Excel 2013宏工作簿。在一臺計算機上打開工作簿錯誤代碼32809,但不是其他計算機

該工作手冊在過去6個月內一直運行良好。今年的第一天,我有一個問題在下面的代碼行。所有這些代碼都是在工作簿打開時將activex複選框控件設置爲true。

Sheets(WSCHARTS).chkAllJPM.value = True 

我設法通過以前的帖子解決這個問題。答案是遵循the instructions。然而,第一天返回辦公室的團隊成員在本工作簿中遇到問題。他們再一次使用這個工作簿,沒有任何問題。該代碼在上面的同一行上進行調試,錯誤代碼號爲32809.

我試着按照相同的說明修復了這個問題,但沒有喜悅。我無法在計算機上覆制這些問題。不確定是什麼原因導致了這個錯誤?

這是子例程。請注意WSCHARTS是公共常量字符串 - 其值爲「圖表」

Sub SetDefaultSetting() 

' set the default view upon opening the spreadsheet 

Dim ws As Worksheet 
Dim wsTime As Worksheet 
Set wsTime = ThisWorkbook.Sheets(WSTSJPM) 
Set ws = ThisWorkbook.Sheets(WSCHARTS) 

' get last date 
Dim lRow As Long 
lRow = wsTime.Range("A65536").End(xlUp).Row 
ws.DropDowns("DropDownStart").ListFillRange = wsTime.Name & "!" & wsTime.Range("A2:A" & lRow).Address 
ws.DropDowns("DropDownEnd").ListFillRange = wsTime.Name & "!" & wsTime.Range("A2:A" & lRow).Address 

ws.Range(COLDATES & "1") = 1      ' start date is 12 dec 2013 
ws.Range(COLDATES & "2") = lRow - 1    ' latest avaiable date 

' control are linked to cells so just need to change their cell values 
ws.Range("C1") = 6 
ws.Range("D1") = 7 
ws.Range("E1") = 8 
ws.Range("F1") = 9 
ws.Range("G1") = 10 

' rest should be blank 
ws.Range("H1") = 1 
ws.Range("I1") = 1 
ws.Range("J1") = 1 
ws.Range("K1") = 1 
ws.Range("L1") = 1 

Sheets(WSCHARTS).chkAllJPM.value = True 
ws.OLEObjects("chkBOAML5").Object.Enabled = False 

Set wsTime = Nothing 
Set ws = Nothing 

UPDATE

所以我創建了一個新的工作簿,只是放置在Sheet1 &單一的ActiveX CheckBox控件更名爲chkTest。

我添加了下面的代碼。該代碼適用於我的電腦,但不適用於我的同事電腦。現在這很令人沮喪。有任何想法嗎?

Private Sub Workbook_Open() 

    Sheets("Sheet1").chkTest.Value = True 

End Sub 

另一個更新

不知道這有什麼與我的問題。當我按照前面提到的說明時,我注意到我的c:\ users \ username \ Appdata \ local \ Temp \ VBE目錄中有一個我的同事沒有的額外文件。

我有一個MsForms.exd和RefEdit.exd。我的同事只有MsForms.exd文件。這會導致任何問題嗎?

希望我的最後一次更新

因此改變在上面的更新正上方此的代碼下面的代碼,它現在的作品我們兩個的計算機上。有人能夠解釋爲什麼或者有什麼不同?

Private Sub Workbook_Open() 

Dim ws As Worksheet 
Set ws = Sheets("Sheet1") 
ws.OLEObjects("chkTest").Object.Value = False 

End Sub 
+0

您提到錯誤代碼32809與打開工作簿錯誤有關。請檢查您打開工作簿的位置。如果可能,請發佈您的整個代碼塊。需要更多信息。另外,如果它在1臺計算機上工作,而不是其他,請檢查文件/文件夾的可訪問性。 – Alex

+0

當工作簿打開時,它調用一個子例程。自行運行例程仍會在相同的地方導致相同的錯誤。我們在文件和目錄 – mHelpMe

+1

上擁有相同的權限,執行debug.print並使用F8功能鍵運行代碼。檢查每個變量/對象是否正確賦值(即,爲新工作簿設置的'wb'值確實包含正確的值)。最後要檢查的是表單是否被鎖定。同樣,需要更多的代碼 – Alex

回答

5

只有一個工程100%的溶液(相信我,我一直在努力通過(可以說)的所有可能的解決方案,在一個CORP環境):擺脫嵌入的ActiveX控件

你有三個選擇,IMO:

  1. 選項1是控件功能進入色帶,也許有另外根據ActiveX控件的用戶窗體的(將需要爲沒有用戶窗體當然是一個命令按鈕)。這裏有相當多的工作,但它是最乾淨和最安全的方式。

  2. 選項2是用窗體控件替換ActiveX控件。這真的很糟糕,因爲你會失去ActiveX控件的大部分功能,但它仍是一個選項。

  3. 選項3是用Shape對象替換ActiveX控件;一些新的具體問題來處理(例如,保護/鎖定),但你得到一個漂亮的範圍格式化選項:)

在你需要返工/更新您的工作簿的任何情況。我主要使用選項1和一些選項3.請注意,您可以在同一應用程序中混合使用上述選項。

1

在嘗試推薦.exd文件刪除後,我們無法正常工作,並考慮在衆多文件中重寫vb代碼,我們終於通過卸載MS KB更新並在後續更新中不允許它解決了此問題。 (Office 2013 KB2726958; 2010 KB2553154; 2007 KB2596927)。 我們希望MS能夠找到一種在未來的更新中無縫解決Active X問題的優雅方法。

0

Micorsoft在2014年12月發佈了一個更新,它在使用ActiveX控件的Excel應用程序中導致錯誤。根據機器上的Excel版本應用修補程序。

關閉所有Office應用程序

對於Excel 2007安裝Microsoft更新KB2596927

對於Excel 2010中安裝Microsoft更新KB 2553154

對於Excel 2013安裝Microsoft Update KB 2726958

打開文件瀏覽器

類型%TEMP%在地址窗口

單擊Excel的文件夾8.0

刪除所有* .exd文件

-1

我的問題是r我從%temp%文件夾中刪除了所有文件 一個重要的事情是用戶帳戶必須具有管理員權限 這就解決了我的問題 對所有人的問候,我希望這有助於很多人。

相關問題