2017-08-18 74 views
0

所以我在嘗試打開一個新的工作簿(checkwb)時遇到了一些奇怪的行爲。當新工作簿打開時,它會打開工作簿中每個頁面的「打印設置」對話框。此外,單擊「OK」〜200次代碼運行正常後,但如果關閉checkwb並嘗試再次運行代碼,則無法打開checkwb,直到完全關閉Excel並重新打開,此時重新顯示打印對話框。這是我的(不完全)代碼:不需要的打印設置

Sub Check() 

Application.ScreenUpdating = False 
Application.DisplayAlerts = False 

Dim homewb As Workbook 
Dim checkwb As Workbook 

Dim ws As Worksheet 
Dim namestr As String 

Dim checkarray() As Double 

Set homewb = Workbooks("BranchTable Calc B31.3.xlsm") 
Set checkwb = Workbooks.Open("Z:\Agrium\Redwater\E130040CP ~ Pipe Spec 
Update\M-Mech\20-Eng\Calcs\Final WT Calcs All Specs\New Bechtel Agrium 
comments.xlsm") 

For Each ws In homewb.Sheets 
    If ws.Name = "Cover" Or ws.Name = "Pipe Dims" Then 
    Else: 
     namestr = ws.Name & " Weld" 
     checkarray() = GetCheckValues(checkwb, namestr) 
    End If 
Next 

checkwb.Close 
Application.ScreenUpdating = True 
Application.DisplayAlerts = True 

End Sub 

這樣可以從損壞的文件出現,但代碼不應該能夠打開所有,如果它是由我的理解損壞文件我讀過奇怪的錯誤。

+0

我在網上發現了一些類似的問題,因爲你正在嘗試使用的文件是.xlsm,顯而易見的是確保這些文件中沒有導致問題的宏。 當文件以「Page Break Preview」模式保存時,excel顯然需要連接的打印機纔可以連接。如果網絡打印機列爲默認設置並且無法訪問,則會看到此問題。儘管如此,這是我所能找到的。 – Ricktron3000

+1

剛剛打開我正在打開的書,將所有頁面視圖設置爲「正常」模式並再次運行代碼。工作完美,感謝您的幫助! – Eric

回答

1

將目標工作簿中所有工作表的頁面視圖設置爲「正常」模式可解決此問題。感謝里卡多·羅德里格斯的提示!