/ / לקרוא נתונים מקובץ טקסט באמצעות Excel VBA

קרא נתונים מקובץ טקסט באמצעות Excel VBA

להלן נבחן תוכנית ב Excel VBA כי קורא נתונים מקובץ טקסט. קובץ זה מכיל כמה קואורדינטות גיאוגרפיות אנחנו רוצים לייבא לתוך Excel.

מצב:

קרא נתונים מקובץ טקסט באמצעות Excel VBA

1. ראשית, להוריד את קובץ הטקסט ולהוסיף אותו "C: מבחן"

הצב לחצן פקודה בגליון העבודה והוסף את שורות הקוד הבאות:

2. אנו מכריזים על ארבעה משתנים. MyFile של מחרוזת סוג, טקסט של מחרוזת סוג, שורת טקסט של מחרוזת סוג, posLat של סוג שלם, ו posLong של מספר שלם.

Dim myFile As String, text As String, textline As String, posLat As Integer, posLong As Integer

3. אנחנו צריכים לאתחל את המשתנה myFile עם הנתיב המלא ואת שם הקובץ.

myFile = "C:testgeographical-coordinates.txt"

או

השתמש בשיטת GetOpenFilename של אובייקט היישום כדי להציג את תיבת הדו-שיח הפתוחה הרגילה ובחר את הקובץ (מבלי לפתוח את הקובץ בפועל).

myFile = Application.GetOpenFilename()

הערה: החלק הריק בין הסוגריים אומר שאנחנו נותנים ל- VBA שום דבר כקלט. מקם את הסמן על GetOpenFilename בעורך Visual Basic ולחץ על F1 לקבלת עזרה בארגומנטים.

4. הוסף את שורת הקוד הבאה:

Open myFile For Input As #1

הערה: הצהרה זו מאפשרת לקרוא את הקובץ. אנו יכולים להתייחס לקובץ כמו # 1 במהלך שאר הקוד שלנו.

5. הוסף את שורות הקוד הבאות:

Do Until EOF(1)
    Line Input #1, textline
    text = text & textline
Loop

הערה: עד סוף הקובץ (EOF), Excel VBA קורא שורה אחת מהקובץ ומקצה אותו textline. אנו משתמשים במפעיל כדי לשרשר (להצטרף) כל שורות בודדות ולאחסן אותו בטקסט משתנה.

6. סגור את הקובץ.

Close #1

7. הבא, אנחנו מחפשים את המיקום של המילים רוחב ואורך בטקסט משתנה. אנו משתמשים בפונקציה Instr.

posLat = InStr(text, "latitude")
posLong = InStr(text, "longitude")

8. אנו משתמשים בפוזיציות אלו ובפונקציה Mid כדי לחלץ את הקואורדינטות מהטקסט המשתנה ולכתוב את הקואורדינטות לתא A1 ולתא A2.

Range("A1").Value = Mid(text, posLat + 10, 5)
Range("A2").Value = Mid(text, posLong + 11, 5)

9. בדוק את התוכנית.

תוצאה:

קרא נתונים מתוצאת קובץ טקסט

קרא גם: