online 1
gast (50)

/ Forum / Anwendungen(Java,C++...)

Anwendungen(Java,C++...)Anwendungen(Java,C++...)

Fragevon inaaa vom 10.08.2021, 20:40 Options

VBA

Hallo ich habe ein großes Probelm. Leider finde ich den Fehler nicht.

Ich habe Bilder die so heißten IR_(5 oder 4 Stellige Zahl).Jpg

Diese Bilder sozusagen einlesen von einem Verzeichnis und nach sessions unterteilen dass heißt, wenn eine Zahl die eingelesen worden ist größer als 1 ist dann beginnt eine neue Session und ein stop soll in das Programm gemacht werden.
Wenn also die Zahl 2987 und die nächste zahl 2989 dann neue Session.
Bei mir bringt er an dieser Stelle ein Fehler :
test_mod_num(Z) = CInt(test_mod(Z))
Warum?

hier zur übersicht das ganze Programm:
Option Explicit
Dim sess As Object
Dim row As Integer
Dim col As Integer
Dim var1(50) As Double
Dim i As Integer
Dim VarMax As Double
Dim Var2 As Double
Dim Pfad As String
Dim Inputtext As String
Dim Zeile As String
Dim Filename As String
Dim J As String
Dim d As String
Dim AnzDateien As Integer
Dim test(200) As String
Dim test_mod(200) As String
Dim test_mod_num(200) As Integer
Dim laenge As Double
Dim beginn As Integer
Dim num As Integer
Dim session_num As Integer
Dim Z As Double
Dim x As Double
Dim datei(200) As String
Private Sub CommandButton1_Click()
Call PlaySequence_Click
End Sub


Private Sub TextBox1_Change()
Pfad = TextBox1
Pfad = Pfad + "\*.*"
End Sub

Sub PlaySequence_Click()
Dim resultat As String

row = 1
col = 1
i = 0
VarMax = 0

'Lesen des Inhaltsverzeichnisses
d = Dir(Pfad)
AnzDateien = 1

Do While d > ""
'MsgBox d
' MsgBox AnzDateien

test(AnzDateien) = d
DoEvents
d = Dir
AnzDateien = AnzDateien + 1
Loop

MsgBox ("Hier die Anzahl der Dateien " & AnzDateien)

'Ausgabe Array
For Z = 1 To AnzDateien
'MsgBox test(Z)
Z = Z + 1
Next

'Aus wieviel Zeichen besteht der Dateiname ?
laenge = Len(test(1))
MsgBox ("Der Dateiname ist " & laenge & " lang")
'vierstellige Bildnummer
If laenge = 11 Then
beginn = 4
num = 4
End If
'fuenfstellige Bildnummer
If laenge = 12 Then
beginn = 4
num = 5
End If
'sechsstellige Bildnummer
If laenge = 13 Then
beginn = 4
num = 6
End If

' Stop

'Zahlen aus dem Dateinamen herauslesen
For Z = 1 To AnzDateien
test_mod(Z) = Mid(test(Z), beginn, num)
MsgBox test_mod(Z)
test_mod_num(Z) = CInt(test_mod(Z))
Z = Z + 1
Next

'Bilder einlesen
'session_num = 1

'test_mod2(Z,session_num)=test_mod(z),session_num
For Z = 1 To AnzDateien


x = Z + 1
If test_mod_num(x) > test_mod_num(Z) Then
session_num = session_num + 1
MsgBox ("erfuellt !")
End If
MsgBox (session_num & " " & test_mod(Z) & " " & test_mod(x))
'Z = Z + 1
Next

' Get a reference to the ThermaCAM™ Researcher object
Set sess = _
Worksheets("Tabelle1").OLEObjects("Objekt 1").Object

session_num = 1

Do While True

' Store IR image time and spotmeter temperatures
' in the cells
Worksheets(1).Cells(row, col).Value = _
sess.GetNamedValue("Ar01.max")

var1(i) = sess.GetNamedValue("Ar01.max")

i = i + 1

Exit Do
'End If
sess.StepForward

row = row + 1
col = 1
Loop

End Sub

Private Sub UserForm_Click()

End Sub



Bitte helft mir.

Danke
Gruß Marina


Antwort schreiben

Antwort 1 von son_quatsch vom 11.08.2021, 07:40 Options

Ganz klar: AnzDateien wird größer als 200 und test_mod_num ist ein Feld von 200 Elementen - jeder Zugriff auf ein höheres Feld bringt einen Fehler.

Antwort 2 von inaaa vom 11.08.2021, 08:02 Options

Hii Danke für deine Antwort.
Also erhöhre ich einfach test_mod_num auf sagen wir so 500 dann müsste es gehn . Aber trotzdem geht es nicht.
kommt immer noch die Fehlermeldung Typen unverträglich?

Lg Marina

Antwort 3 von son_quatsch vom 11.08.2021, 08:15 Options

MsgBox ("Hier die Anzahl der Dateien " & AnzDateien)
Welchen Text liefert dir denn dieser Dialog? Unter 500?

Lautet die Fehlermeldung hingegen "Typen unverträglich", so ist test_mod(Z) zu dem Zeitpunkt einfach keine Zahl (also mindestens ein Zeichen innerhalb des Textes ist keine Ziffer). Aber auch dafür hast du ja bereits in der Zeile darüber einen Dialog, der jede "Zahl" ausgibt. Leider nicht eindeutig, denn so siehst du nicht, ob vielleicht ein Leerzeichen vorne und hinten mit dranklebt.

Überprüf das mal (und ändere den Dialog in z.B. MsgBox ">" & test_mod(Z) & "<" )

Ähnliche Themen

VBA Code
Marodas  02.05.2008 - 67 Hits - 1 Antwort

Makro in VBA
Bollerkohl  21.08.2008 - 50 Hits - 7 Antworten

VBA in VB6 umwandeln?
dersuchendeX09  28.11.2009 - 705 Hits - 2 Antworten

Frage zu VBA / Excel
pamus  27.05.2009 - 272 Hits - 1 Antwort

vba tabelle durchsuchen
xxLunaxx  27.07.2009 - 600 Hits - 4 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026