ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
29 visibility
موضوع: آفیس توسط:

بیایید بگوییم که شما یک پوشه در هارد دیسک خود دارید که حاوی سی فایل متنی است و می خواهید همه آنها را به یک ورک بوک اکسل وارد کنید. شما می خواهید که هر فایل متنی در کاربرگ خود در ورک بوک قرار گیرد، به طوری که در مجموع 30 کاربرگ داشته باشید.

یکی از راه های انجام این کار این است که کاربرگ های مورد نظر را به صورت دستی اضافه کنید و سپس هر یک از فایل های متنی را به صورت جداگانه وارد کنید. این، همانطور که می توانید تصور کنید، به سرعت خسته کننده خواهد شد. راه حل بسیار بهتر استفاده از ماکرو برای انجام واردات است، مانند مورد زیر.

Sub CombineTextFiles()
    Dim FilesToOpen
    Dim x As Integer
    Dim wkbAll As Workbook
    Dim wkbTemp As Workbook
    Dim sDelimiter As String

    On Error GoTo ErrHandler
    Application.ScreenUpdating = False

    sDelimiter = "|"

    FilesToOpen = Application.GetOpenFilename _
      (FileFilter:="Text Files (*.txt), *.txt", _
      MultiSelect:=True, Title:="Text Files to Open")

    If TypeName(FilesToOpen) = "Boolean" Then
        MsgBox "No Files were selected"
        GoTo ExitHandler
    End If

    x = 1
    Set wkbTemp = Workbooks.Open(FileName:=FilesToOpen(x))
    wkbTemp.Sheets(1).Copy
    Set wkbAll = ActiveWorkbook
    wkbTemp.Close (False)
    wkbAll.Worksheets(x).Columns("A:A").TextToColumns _
      Destination:=Range("A1"), DataType:=xlDelimited, _
      TextQualifier:=xlDoubleQuote, _
      ConsecutiveDelimiter:=False, _
      Tab:=False, Semicolon:=False, _
      Comma:=False, Space:=False, _
      Other:=True, OtherChar:="|"
    x = x + 1

    While x 

این ماکرو به شما امکان می دهد فایل هایی را که می خواهید وارد کنید انتخاب کنید و سپس داده های آن فایل ها را در کاربرگ های جداگانه در ورک بوک قرار می دهد. ماکرو فرض می کند که داده های وارد شده از کاراکتر لوله (|) به عنوان جداکننده بین فیلدها استفاده می کند.

اگر می دانید که فایل هایی که قرار است وارد شوند همیشه در یک پوشه خاص هستند و می خواهید همه فایل های آن پوشه را وارد کنید، می توانید ماکرو را کمی ساده کنید. مثال زیر فرض می کند که فایل ها در پوشه c: empload_excel هستند، اما شما می توانید با ایجاد یک تغییر ساده به متغیر fpath در کد ماکرو، نام پوشه را تغییر دهید.

Sub LoadPipeDelimitedFiles()
    Dim idx As Integer
    Dim fpath As String
    Dim fname As String

    idx = 0
    fpath = "c:	empload_excel"
    fname = Dir(fpath & "*.txt")
    While (Len(fname) > 0)
        idx = idx + 1
        Sheets("Sheet" & idx).Select
        With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
          & fpath & fname, Destination:=Range("A1"))
            .Name = "a" & idx
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 437
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileOtherDelimiter = "|"
            .TextFileColumnDataTypes = Array(1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
            fname = Dir
        End With
    Wend
End Sub
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 43 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 48 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 69 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 20 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 31 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

232 نفر آنلاین
1 عضو و 231 مهمان در سایت حاضرند
اعضای حاضر در سایت
بازدید امروز: 16643
بازدید دیروز: 17853
بازدید کل: 20328826
...