Wpis z mikrobloga

Co ten #excel #vba ?

Wczytuje plik do tablicy strData (rozdzielany przecinkami)
do tego momentu działa.
Błąd wywala linijka:
strData(i) = Mid(strData(i), first + 1, second - first - 1)
Co jest nie tak?
strData zawiera Sting a Mid też zwraca String ?

Kod:

Dim MyData As String
Dim strData() As String
Dim first As Integer
Dim second As Integer
Dim fileNum As Integer
fileNum = FreeFile()

fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")


If fileToOpen <> False Then

Open fileToOpen For Binary As #1
MyData = Space$(LOF(1))
Get #1, , MyData
Close #1
strData() = Split(MyData, ",")


For i = LBound(strData) To UBound(strData)
first = InStr(strData(i), "<")
second = InStr(first + 1, strData(i), ">")
strData(i) = Mid(strData(i), first + 1, second - first - 1)
Next i

End If
  • 6
@scorpio18k: podany wyżej kod (niezadeklarowanych parę zmiennych) nie wywala żadnego błędu dla podanego przykładu danych. Może podzielisz się komunikatem błędu? Albo format danych jest niezgodny z podanym, albo na przykład masz overflow w pętli - jak jest zadeklarowane i?
Run Time Error 5 - Invalid Procedure Call or Argument


strzelam, ze gdzies w danych brakuje ci < albo >
lub cos rownie "glupiego", bo kod jest prawidlowy

@scorpio18k: kliknij po lewej stronie linijki
For...
zeby wlaczyc breakpoint
a) teraz uruchom makro F5, kod zatrzyma sie na linijce For...
b) przesun kursor myszy nad poszczegolne zmienne i sprawdz ich wartosci
c) teraz nacisnij F8 zeby przejsc do nastepnej linii kodu
d)
taju - > Run Time Error 5 - Invalid Procedure Call or Argument

strzelam, ze gdzies...

źródło: comment_16147066648LMEubCn6FoTuP3oF3zuB8.jpg

Pobierz