Hallo, zusammen!
Ich "bastle" jetzt schon seit einigen Jahren (nach dienstlichem Bedarf) im Access-/Excel-/Word-VBA herum (mehr oder weniger erfolgreich...) und möchte nun zusätzlich in's VB einsteigen.
Derzeit stelle ich mir die Aufgabe, aus einem VB-Formular ein Excel-Workbook zu laden (klappt schon!), die Anzahl der gefüllten Zeilen zu zählen (klappt auch schon!!) und einen Range auf ungefüllte Zellen zu prüfen - und genau das klappert nicht! :-(
Daher die Bitte an die Experten: gebt mir einen Tipp!
Basis ist eine funktionierende Prozedur aus'm Excel-VBA wie folgt:
Dim Wsf As WorksheetFunction
Dim Bereich As Range
'Ermitteln, wieviele Zeilen belegt (nach Variable Speichern)
With ActiveSheet
intAnzahlZeilen = .UsedRange.Rows.Count
'Evtl. Leere Zellen im Bereich K2:Mx suchen
Set Wsf = Application.WorksheetFunction
Set Bereich = .Range("K2:M" & intAnzahlZeilen & "")
intLeereZellen = Wsf.CountBlank(Bereich)
End With
Hier meine Idee für's VB:
Dim dblLeereZellen As Double
Dim ExlWS As Excel.Worksheet
Dim ExlRng As Excel.Range
Dim Wsf As Excel.WorksheetFunction
ExlRng = oExl.Range(
"K2:M" & GLint_ZeilenZahl & "")
Wsf =
Nothing
dblLeereZellen = Wsf.CountBlank(ExlRng)
'### Hier kommt die Fehlermeldung! ###
MsgBox(
"Anzahl Leere Zellen in der Range: " & dblLeereZellen)
Offenbar kennt das VB keine "Set"-Geschichte und die "WorksheetFunction" habe ich auch nicht im Griff...
Vielen Dank im Voraus an euch Alle! & Kollegialen Gruß!!! ;-)
P.S. Hier die eigentliche Fehlermeldung:
System.NullReferenceException wurde nicht behandelt.
Message="Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."