我需要通过编程将一个模块( Tim https://github.com/timhall/VBA-Dictionary中的字典)从一个工作簿复制到另一个工作簿。为此,我使用了以下代码:
Sub CopyMacrosToExistingWorkbook(SourceWB As Workbook, strModuleName As String, TargetWB As Workbook)
Dim SourceVBProject As VBIDE.VBProject, DestinationVBProject As VBIDE.VBProject
Set SourceVBProject = SourceWB.VBProject
Set DestinationVBProject = TargetWB.VBProject
Dim SourceModule As VBIDE.CodeModule, DestinationModule As VBIDE.VBComponent
Set SourceModule = SourceVBProject.VBComponents(strModuleName).CodeModule
Set DestinationModule = DestinationVBProject.VBComponents.Add(SourceModule.Parent.Type)
DestinationModule.Name = strModuleName
With SourceModule
DestinationModule.CodeModule.AddFromString .Lines(1, .CountOfLines)
End With
End Sub在Windows上,一切都进行得很顺利,但在Mac (Office365Version16.29)上,我将导入这个字典模块的文件不起作用。它无法保存,它将这个内部错误写给我:


有趣的是,只要将这个损坏的文件复制到windows,打开它,保存并返回给Mac就足够了。但对我来说,这还不够。
我发现,如果我从字典类模块中删除这段代码,“内部错误”将不会显示,但是如果没有这段代码,我就无法使用该模块:
Public Enum CompareMethod
BinaryCompare = VBA.vbBinaryCompare
TextCompare = VBA.vbTextCompare
DatabaseCompare = VBA.vbDatabaseCompare
End Enum所以我想,,这个Enum类有什么问题。有什么问题,哪里有问题?我找不到它。谢谢你的帮助。
发布于 2019-09-17 00:57:36
这是一个很长的机会,但你试过使用Excel 16.28吗?
我有几个宏自16.12以来运行良好,但是在升级到16.29之后,我遇到了一些错误,我不知道代码有什么问题。
我又恢复到16.28,一切都好起来了。
https://stackoverflow.com/questions/57957666
复制相似问题