VBA כתוב קובץ טקסט | כתוב נתוני Excel לקבצי טקסט באמצעות קוד VBA

Excel VBA כתוב קובץ טקסט

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

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

כיצד לכתוב נתונים לקבצי טקסט באמצעות VBA?

כתיבת נתונים מאקסל לטקסט היא קידוד מורכב ודורש ידע טוב מאוד בקידוד VBA. בצע את השלבים הבאים כדי לכתוב את קוד ה- VBA כדי להעתיק נתונים מ- Excel לקובץ טקסט.

לפני שאראה לך את הדרך לכתוב את הקוד, תן לי להסביר כיצד לפתוח את קובץ הטקסט באמצעות משפט פתוח.

תחביר של קובץ טקסט פתוח

פתח [נתיב קובץ], עבור [מצב], כמו [מספר קובץ]

נתיב קבצים: נתיב הקובץ אותו אנו מנסים לפתוח במחשב.

מצב: מצב הוא השליטה שיכולה להיות לנו על פתיחת קבצי טקסט. יכולים להיות לנו שלושה סוגים של שליטה על קובץ הטקסט.

  • מצב קלט: זה מציע שליטה " לקריאה בלבד " בקובץ הטקסט הפותח. אם אנו משתמשים ב"מצב קלט "איננו יכולים לעשות דבר עם הקובץ. אנחנו פשוט יכולים לקרוא את התוכן של קובץ הטקסט.
  • מצב פלט: באמצעות אפשרות זו נוכל לכתוב את התוכן עליה. הנקודה שעלינו לזכור כאן היא שכל הנתונים הקיימים יוחלפו. אז עלינו להיזהר מאובדן אפשרי של נתונים ישנים.
  • מצב הוספה: מצב זה מנוגד לחלוטין למצב OutPut. באמצעות שיטה זו אנו יכולים למעשה לכתוב את הנתונים החדשים בסוף הנתונים הקיימים בקובץ.

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

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

אתה יכול להוריד תבנית קובץ טקסט מסוג VBA לכתוב כאן - תבנית קובץ טקסט של VBA לכתוב

דוגמה מס '1

בצע את השלבים הבאים כדי לכתוב את הקוד ליצירת קובץ טקסט חדש.

נניח שכבר היה לך קובץ טקסט בשם "Hello.txt" באחסון המחשב שלך ואנחנו נראה לך כיצד לכתוב את הנתונים בו.

שלב 1: הכריז על משתנה

הכריז על המשתנה להחזיק את נתיב הקובץ כמחרוזת.

קוד:

 תת TextFile_Example1 () נתיב עמום כתחתית מחרוזת 

שלב 2: קבע את מספר הקובץ

כדי לקבוע איזה מספר קובץ אנו מתכוונים להכריז על משתנה אחד נוסף כשלם שלם.

קוד:

 Sub TextFile_Example1 () נתיב עמום כמחרוזת Dim FileNumber כמו Sub Endger של סוף משנה 

שלב 3: הקצה נתיב קובץ

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

קוד:

 Sub TextFile_Example1 () נתיב עמום כמחרוזת קובץ עמום מספר כנתיב שלם = "D: \ Excel Files \ VBA File \ Hello.txt" 'שנה את הנתיב לפי הדרישה שלך סוף משנה 

שלב 4: הקצה פונקציית קובץ חינם

כעת עבור המשתנה מספר קובץ הקצו את הפונקציה "קובץ חינם" לאחסון מספר הקובץ הייחודי.

קוד:

 תת TextFile_Example1 () נתיב עמום כמחרוזת עמום קובץ מספר כנתיב שלם = "D: \ Excel Files \ VBA File \ Hello.txt" 'שנה את הנתיב לפי הדרישה שלך 

שלב 5: פתח קובץ טקסט

כעת עלינו לפתוח את קובץ הטקסט כדי לעבוד איתו. כפי שהסברתי עלינו להשתמש בהצהרת OPEN כדי לפתוח את קובץ הטקסט.

שלב 6: השתמש בשיטת הדפסה / כתיבה

לאחר פתיחת הקובץ עלינו לכתוב בו משהו. כדי לכתוב בקובץ הטקסט עלינו להשתמש בשיטת "כתוב" או "הדפס".

קוד:

 תת TextFile_Example1 () נתיב עמום כמחרוזת עמום קובץ מספר כנתיב שלם = "D: \ Excel Files \ VBA File \ Hello.txt" 'שנה את הנתיב לפי הדרישה שלך FileNumber = FreeFile נתיב פתוח לפלט כ- FileNumber הדפס # FileNumber, " ברוך הבא "הדפס # קובץ מספר", ל"הדפס # קובץ מספר, "VBA" משנה משנה 

First, we need to mention the file number (here we have assigned the file through the “FileNumber” variable), then we need to add the content we want to add to a text file.

Step 7: Save and Close Text File

Once the content is written in a text file, we need to save and close the text file.

Code:

 Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer Path = "D:\Excel Files\VBA File\Hello.txt" 'Change the path as per your requirement FileNumber = FreeFile Open Path For Output As FileNumber Print #FileNumber, "Welcome" Print #FileNumber, "to" Print #FileNumber, "VBA" Close FileNumber End Sub 

Now, run the code this manually or through shortcut excel key F5, it will write the mentioned content in the mentioned text file.

Example #2

Now we will see how to write the data of excel sheet to a text file.

For this example, I have created simple data in excel like below.

Step 1: With the continuation of the old example define two more variables as Integer to find the last row and last column.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer End Sub 

Step 2: Find the last used row and column in the worksheet.

Step 3: Now assign the file path and file number.

Step 4: Now use the OPEN statement to open the text file.

Step 5: We need to loop through rows and columns, so declare two more variables as Integer.

Step 6: Now open Loop to loop through the row (For next loop in VBA)

Step 7: Now to loop through columns open one more loop inside the existing loop.

Step 8: We need to write the same line of data until it reaches the last column. So for this apply IF statement in VBA.

Step 9: Now save and close the text file.

This code will write the details to a text file, but to open the text file after written we need to use the below code.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer Dim k As Integer Dim i As Integer LR = Worksheets("Text").Cells(Rows.Count, 1).End(xlUp).Row LC = Worksheets("Text").Cells(1, Columns.Count).End(xlToLeft).Column Path = "D:\Excel Files\VBA File\Hello.txt" FileNumber = FreeFile Open Path For Output As FileNumber For k = 1 To LR For i = 1 To LC If i  LC Then Print #FileNumber, Cells(i, k), Else Print #FileNumber, Cells(i, k) End If Next i Next k Close FileNumber Shell "notepad.exe " & Path, vbNormalFocus End Sub 

So, run the code using the F5 key or manually then, it will copy the data like the below.