我们有一套基于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并单步执行相同的工作簿打开代码,它现在将该工作表显示为在正确的目录中打开。是否有人对如何解决此问题有任何想法?
谢谢,尼尔