reneemettrie
Terugkerende gebruiker
- Lid geworden
- 1 aug 2006
- Berichten
- 1.233
Had hier al eens eerder een vraag gesteld over een referentie naar de bibliotheek van Excel (in VBA), maar vind de posts niet terug.
Bedoeling is de referentie aan te passen als je van Office versie verandert.
Had hiervoor 2 oplossingen (de eerste van mezelf, de tweede van Octafish, waarvoor dank
In beide versies wordt met de environ functie gewerkt.
Op mijn eigen PC, Office 2016, werkt dit.
Maar nu probeer ik het op een 2010 toestel en de subs blokkeren op de Environ functie (ook op de date functie) met als melding dat de bibliotheek mankeert.
Hoe kan ik dat oplossen?
Sub test()
Update:
Heb het nu zo aangepast:
Nu geen fout meer op bovenstaande lijn,
maar nu blokkeert hij op deze:
met de melding: fout 48 - fout bij laden DLL
Bedoeling is de referentie aan te passen als je van Office versie verandert.
Had hiervoor 2 oplossingen (de eerste van mezelf, de tweede van Octafish, waarvoor dank
In beide versies wordt met de environ functie gewerkt.
Op mijn eigen PC, Office 2016, werkt dit.
Maar nu probeer ik het op een 2010 toestel en de subs blokkeren op de Environ functie (ook op de date functie) met als melding dat de bibliotheek mankeert.
Hoe kan ik dat oplossen?
Sub test()
Code:
Dim OfficeVersion As String, ExcelPath As String
'If References("Excel").IsBroken Then
References.Remove References("Excel")
ExcelPath = Left(Environ("path"), InStr(1, Environ("path"), ";") - 1) & "Excel.exe"
'Debug.Print ExcelPath
References.AddFromFile ExcelPath
'End If
Debug.Print Environ("path")
'Dit geeft:
'C:\Program Files (x86)\Microsoft Office\Root\Office16\;C:\Program Files (x86)\Lenovo\FusionEngine;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Common Files\lenovo\easyplussdk\bin;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Skype\Phone\;C:\Users\Renée\AppData\Local\Microsoft\WindowsApps;;C:\Program Files (x86)\Microsoft Office\root\Client
End Sub
Sub IdemMetArray()
Dim ExcelPath As String, arr
arr = Split(Environ("path"), ";")
ExcelPath = arr(LBound(arr)) & "Excel.exe"
Debug.Print ExcelPath
ExcelPath = arr(0) & "Excel.exe"
Debug.Print ExcelPath
End Sub
Update:
Heb het nu zo aangepast:
Code:
VBA.Left(VBA.Interaction.Environ("path"), InStr(1, VBA.Interaction.Environ("path"), ";") - 1) & "Excel.exe"
maar nu blokkeert hij op deze:
Code:
References.Remove Application.References("Excel")
Laatst bewerkt door een moderator: