我們有一套基於Excel 2003工作簿的Excel工作簿。某些工作簿在相同目錄中打開其他工作簿以用作數據存儲。最近,爲了將其移植到Mac Excel 2011平臺,我們將工作簿從.xls轉換爲.xlsm格式。經過與兼容性問題的日誌糾纏之後,我們的產品在Excel 2007開始工作。Excel 2003 - 2007文件轉換器將工作簿相關文件路徑分解爲其他工作簿
但是,當我們返回在安裝了Converter模塊的Excel 2003上進行測試時,我們的自相關工作簿鏈接全部中斷。這是因爲轉換器在用戶Temp目錄中的工作簿的副本中,該目錄不在產品目錄附近的任何地方。用戶可以選擇安裝產品的位置,因此產品目錄的路徑一直是自我相對的,至今爲止工作得很好。奇怪的是,一旦工作簿打開,如果你已經運行了Workbook_Open代碼,它將返回正確的路徑。只有當工作簿實際打開時,你是否有問題。例如
Private Sub Workbook_Open()
Dim appPath As String
Dim FileName As String
. . .
appPath = Me.Path
#If Win32 Or Win64 Then
FileName = appPath & "\" & "MMDataStore.xlsm"
#Else
' MAC support
FileName = appPath & ":" & "MMDataStore.xlsm"
#End If
MsgBox FileName
Application.Workbooks.Open FileName
MsgBox "Activate"
Workbooks("MMDataStore.xlsm").Activate
Me.Activate
...
通過第一次,作爲工作簿打開,消息框指示文件名的路徑(APPPATH)是在Temp目錄(如C:\ Users \用戶njohnson \應用程序數據\ Local \ Temp \ MMDataStore.xlsm。如果您打開Microsoft Visual Basic並單步執行相同的工作簿打開代碼,它現在將該工作表顯示爲在正確的目錄中打開。是否有人對如何解決此問題有任何想法?
謝謝,尼爾