Option Public
Option Declare
Sub Initialize
Const dateiname = "C:\test\test.xlsx"
Dim varXLSheet As Variant
Set varXLSheet = CreateObject ("Excel.Application")
varXLSheet.Workbooks.Open (dateiname)
Dim tmp As Variant
tmp = LeseExcelZelle (varXLSheet, 2, 2)
MsgBox tmp
End Sub
Function LeseExcelZelle (excel As Variant, zeile As Integer, spalte As Integer) As String
On Error GoTo Fehler
LeseExcelZelle = excel.Cells (zeile, spalte).value
Ende:
Exit Function
Fehler:
LeseExcelZelle = "@Error"
Resume Ende
End Function
Nachteil ist, dass der Rückgabewert Text ist, um auch Zahlenwerte zurückzubekommen, kannst Du das auch nur als Prüfmethode verwenden.
Option Public
Option Declare
Sub Initialize
Const dateiname = "C:\test\test.xlsx"
Dim varXLSheet As Variant
Set varXLSheet = CreateObject ("Excel.Application")
varXLSheet.Workbooks.Open (dateiname)
Dim tmp As Variant
If PruefeExcelZelle (varXLSheet, 2, 2) Then
tmp = varXLSheet.Cells(2, 2).value
MsgBox tmp
Else
MsgBox "Fehler"
End If
End Sub
Function PruefeExcelZelle (excel As Variant, zeile As Integer, spalte As Integer) As Integer
On Error GoTo Fehler
Dim tmp As String
tmp = excel.Cells (zeile, spalte).value
PruefeExcelZelle = True
Ende:
Exit Function
Fehler:
PruefeExcelZelle = False
Resume Ende
End Function
EDIT: eknoris Methode funktioniert natürlich auch, aber das ist ja viel zu einfach ... ;)
Option Public
Option Declare
Sub Initialize
Const dateiname = "C:\test\test.xlsx"
Dim varXLSheet As Variant
Set varXLSheet = CreateObject ("Excel.Application")
varXLSheet.Workbooks.Open (dateiname)
Dim tmp As Variant
tmp = varXLSheet.Cells(2, 2).value
If IsArray (tmp) Then
MsgBox tmp (0)
Else
MsgBox "Fehler"
End If
End Sub