چگونه چندین فایل تکست (txt) در یک پوشه را به اکسل وارد (import) کنیم
3 دقیقه
زمان مطالعه
0 رای
۲۳۸
بازدید
۱۳۹۶/۱۰/۲۷
تاریخ انتشار
اهمیت موضوع
شاید برای شما هم پیش آمده باشد که بخواهید چندین فایل با فرمت txt را به فایل اکسل خود وارد یا import کنید. اگر تعداد فایل های شما کم باشد به راحتی می توانید از ریبون data و گزینه get external data استفاده کنید. (در این مطلب بخوانید.)
ولی در صورتی که تعداد فایل های شما زیاد باشد این فرایند زمان زیادی را از شما خواهد گرفت. مثلا فرض کنید 50 یا 100 فایل با فرمت txt یا csv دارید و میخواهید این اطلاعات را وارد یک فایل اکسل کنید. اگر از روش بالا استفاده کنید دو مشکل عمده برای شما به وجود خواهد آمد:
1- زمان بر بودن: فرض کنید ورود هر فایل به اکسل 1 دقیقه از زمان شما را بگیرد، برای ورود 50 فایل باید 50 دقیقه وقت بگذارید.
2- بالا بودن احتمال خطا: به دلیل تکراری بودن این فرایند و خستگی ذهن، احتمال وارد نکردن یک فایل یا وارد کردن چندین باره یک فایل امری بسیار محتمل است.
اما راهکار چیست؟
برای این مسئله می توانید از دو راهکار استفاده کنید:
1- استفاده از کدهای vba برای وارد کردن فایل های به اکسل
2- استفاده از افزونه powre query (در این مطلب بخوانید.)
ما در اینجا قصد داریم با استفاده از کدهای vba چندین فایل txt که در یک پوشه قرار گرفته اند، در کمتر از 1 دقیقه به اکسل وارد کنیم.
مراحل کار:
1- ابتدا صفحه کاری اکسل که می خواهید داده ها را در آن وارد کنید باز کنید.
2- با زدن کلید ترکیبی alt+F11 پنجره vba برای شما فعال خواهد شد.
3- از زبانه insert گزینه module را انتخاب کنید تا ماژول جدید به پروژه شما اضافه شود.
4- کد زیر را کپی کنید و در ماژول خود پیست کنید.
Sub Test()
'UpdatebyExtendoffice6/7/2016
Dim xWb As Workbook
Dim xToBook As Workbook
Dim xStrPath As String
Dim xFileDialog As FileDialog
Dim xFile As String
Dim xFiles As New Collection
Dim I As Long
Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "Select a folder [Kutools for Excel]"
If xFileDialog.Show = -1 Then
xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
If Right(xStrPath, 1) <> "\" Then xStrPath = xStrPath & "\"
xFile = Dir(xStrPath & "*.txt")
If xFile = "" Then
MsgBox "No files found", vbInformation, "Kutools for Excel"
Exit Sub
End If
Do While xFile <> ""
xFiles.Add xFile, xFile
xFile = Dir()
Loop
Set xToBook = ThisWorkbook
If xFiles.Count > 0 Then
For I = 1 To xFiles.Count
Set xWb = Workbooks.Open(xStrPath & xFiles.Item(I))
xWb.Worksheets(1).Copy after:=xToBook.Sheets(xToBook.Sheets.Count)
On Error Resume Next
ActiveSheet.Name = xWb.Name
On Error GoTo 0
xWb.Close False
Next
End If
End Sub
5- با زدن کلید F5 کد را اجرا کنید.
6- از پنجره باز شده، پوشه مورد نظر که فایل ها با فرمت txt در آن قرار دارد انتخاب کنید. (مانند عکس زیر)
7- بر روی گزینه ok کلیک کنید تا همه فایل ها با فرمت txt که در پوشه مورد نظر است در فایل اکسل قرار بگیرد.
این محتوا چطور بود؟
نظر شما به بهبود محتوا کمک میکند

امیر دایی
500k دنبالکنندهاز بچگی عاشق برنامه نویسی بودم
دیدگاهها
0 دیدگاه