У меня есть несколько таблиц, созданных в Excel 2010, и мы постепенно внедряем Windows 10 (и Office 365). Поэтому, как только некоторые из моих файлов открываются кем-то, использующим Excel 2016, и сохраняются, когда кто-то, кто все еще находится в Excel 2010, пытается открыть файл, он получает ошибку, связанную с отсутствующими ссылками.
Я знаю, как это исправить вручную, но, к сожалению, не все это делают. Поэтому я искал способ сделать это автоматически.
Я нашел следующий код, но по какой-то причине при его применении он просто зависает в Excel и вылетает.
Кто-нибудь знает, почему это не работает?
* В стандартном модуле *
Sub References_RemoveMissing()
'Macro purpose: To remove missing references from the VBE
Dim theRef As Variant, i As Long
On Error Resume Next
For i = ThisWorkbook.VBProject.References.Count To 1 Step -1
Set theRef = ThisWorkbook.VBProject.References.Item(i)
If theRef.isbroken = True Then
ThisWorkbook.VBProject.References.Remove theRef
End If
Next i
If Err <> 0 Then
MsgBox "A missing reference has been encountered!" _
& "You will need to remove the reference manually.", _
vbCritical, "Unable To Remove Missing Reference"
End If
On Error GoTo 0
End Sub
* В модуле ThisWorkbook *
Call References_RemoveMissing
End Sub