MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 03.04.2002, 18:53   #1
jinx
MOF Guru
MOF Guru
Tipp Info - Verweise überprüfen

Moin @ all,

durch Installation bzw. Entfernen von Programmen oder durch das Verscheiben / Löschen von Komponenten kann es zu Problemen der Art kommen, dass selbst einfache Befehle wie String-Befehle Left, Right oder Mid bei der Programmausführung als unbekannt markiert werden.

Der Hintergrund für dieses Verhalten lässt sich meist in der VBE unter dem Punkt EXTRAS / VERWEISE in der Form eines aktivierten, aber vom System nicht vorgefundenen Verweises auffinden. Wird dieser deaktiviert, läuft die Anwendung wieder "wie geschmiert".

Die installierten Verweise kann man sich per folgendem Code ausgeben lassen:

Code:

Option Explicit
 
Sub Grab_References()
' Ritchie (UK), Ozgrid, 05.09.2004
' http://ozgrid.com/forum/showthread.php?t=22504
  Dim n As Integer, l As Long, c As Integer, lastR As Long
  Dim VBPRef As Object
  With ActiveWorkbook
    Set VBPRef = .VBProject.references
    With Sheets(1)                ' modifiziert, greift auf die erste Tabelle zu
      l = 5
      .Cells(l, 1).Value = "Count"
      .Cells(l, 2).Value = "Name"
      .Cells(l, 3).Value = "Description"
      .Cells(l, 4).Value = "GUID"
      .Cells(l, 5).Value = "Major"
      .Cells(l, 6).Value = "Minor"
      .Cells(l, 7).Value = "Full path"
      .Range("A" & l, "G" & l).Font.Bold = True
      lastR = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row  'mod.
      .Range(.Cells(l + 1, 1), .Cells(lastR + 1, 7)).Clear
      On Error Resume Next
      For n = 1 To VBPRef.Count
        l = l + 1
        .Cells(l, 1).Value = n
        .Cells(l, 2).Value = VBPRef.Item(n).Name
        .Cells(l, 3).Value = VBPRef.Item(n).Description
        .Cells(l, 4).Value = VBPRef.Item(n).GUID
        .Cells(l, 5).Value = VBPRef.Item(n).Major
        .Cells(l, 6).Value = VBPRef.Item(n).Minor
        .Cells(l, 7).Value = VBPRef.Item(n).fullpath
      Next n
      .Columns("A:G").EntireColumn.AutoFit
    End With
    Set VBPRef = Nothing
  End With
End Sub
Ein Beispiel für das Hinzufügen von Verweisen kann hier eingesehen werden:

Code:

Option Explicit
 
Dim ID As Object
Const sGuid As String = " Referencing ["
Const sMsg As String = "You may have to manually set a reference to the ["
 
Sub CreateRef_Library_ScFso()
' Ritchie (UK), Ozgrid, 05.09.2004
' http://ozgrid.com/forum/showthread.php?t=22504
'
'// Set a Reference to SCRRUN.DLL = Scripting.FileSystemObject
'// Microsoft scripting Runtime
'// If it already exists Resume & Handle latter!
  On Error Resume Next
  Set ID = ThisWorkbook.VBProject.references
  ID.AddFromGuid "{420B2830-E718-11CF-893D-00A0C9054228}", 1, 0
 
  If Err.Number <> 32813 And Err.Number <> 0 Then
    ErrMsg Err.Number, Err.Description, Err.HelpFile, Err.HelpContext, _
    "Microsoft scripting Runtime"
  End If
End Sub
 
Sub CreateRef_Library_Outlook()
' Ritchie (UK), Ozgrid, 05.09.2004
' http://ozgrid.com/forum/showthread.php?t=22504
'
'// Set a Reference to Microsoft Outlook M.m Object Library = msoutlM.olb
'// Microsoft Outlook M.n Object Library
'// If it already exists Resume & Handle latter!
  On Error Resume Next
  Set ID = ThisWorkbook.VBProject.references
  ID.AddFromGuid "{00062FFF-0000-0000-C000-000000000046}", 7, 0
 
  If Err.Number <> 32813 And Err.Number <> 0 Then
    ErrMsg Err.Number, Err.Description, Err.HelpFile, Err.HelpContext, _
    "Microsoft Outlook Object Library"
  End If
End Sub
 
Sub ErrMsg(En, Ed, Eh, Ehc, ss)
' Ritchie (UK), Ozgrid, 05.09.2004
' http://ozgrid.com/forum/showthread.php?t=22504
'
'// Error Object handler
 
  MsgBox "Error Number:= " & Err.Number & vbCr _
  & "Error Discrp:= " & Err.Description & vbCr & vbCr & _
  sMsg & ss & "]", _
  vbMsgBoxHelpButton, _
  "Error" & sGuid & ss & "]", Err.HelpFile, Err.HelpContext
  Set ID = Nothing
 
End Sub
Zur Überprüfung und zum Entfernen von nicht mehr vorhandenen Verweisen kann ein Code wie folgender verwendest werden. Bitte beachten, dass sich ThisWorkbook immer auf die Mappe bezieht, in der sich das Makro befindet; soll eine andere Mappe geprüft werden, ist ThisWorkbook durch ActiveWorkbook zu ersetzen:

Code:

Option Explicit
 
Public Sub CheckReferences()
  Dim i As Integer
 
  For i = 1 To ThisWorkbook.VBProject.References.Count
    If ThisWorkbook.VBProject.References(i).IsBroken Then
      ThisWorkbook.VBProject.References.Remove _
      ThisWorkbook.VBProject.References(i)
      Exit For
    End If
  Next i
End Sub
Code eingefügt mit dem MOF Code Converter

__________________

cu
jinx


per 31.12.2010 ausgeschiedener User und ehemaliger Excel-

Folgende Tools werden zur optischen Aufbereitung eingesetzt: Code Converter; Excel Jeanie Html
Für die allgemeinen Hinweise: Netiquette; Fragen und Antworten in Foren

eingesetzte Betriebssysteme: XP Home, XP Media Center Edition, XP Professional, Vista Ultimate, 7/Seven
verwendete Programme: Excel97 SR-2, Office 2000 SP-3, Office2002/XP SP-3, Office 2003 Professional SP-3, Office 2007 Home & Student SP-3, Office 2007 Professional SP-3

Geändert von jinx (09.01.2005 um 10:18 Uhr). Grund: ursprünglichen Beitrag für anderen Zweck verwendet
jinx ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:44 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.