ম্যাক্রো ব্যবহার করে সিএসভিতে অফিস এক্সেল টেবিলটি রপ্তানি করুন


6

আমি এক্সেল 2010 এ এক্সেল টেবিলগুলি ব্যবহার করছি I আমি খুব দ্রুত এই টেবিলগুলির বিষয়বস্তু * .csv এ রফতানি করতে চাই।

আমার বর্তমান ওয়ার্কফ্লো: 1. ম্যানুয়ালি টেবিলটি নির্বাচন করুন 2. সামগ্রীগুলি একটি নতুন ওয়ার্কবুকে অনুলিপি করুন 3. ওয়ার্কবুকটি * .csv ফাইল হিসাবে সংরক্ষণ করুন

পছন্দসই কর্মপ্রবাহ: 1. ম্যানুয়ালি টেবিলটি নির্বাচন করুন 2. একটি ম্যাক্রো চালান যা একটি প্রাক-সংজ্ঞায়িত ফাইলের নামটিতে লেখেন

যেহেতু টেবিলগুলির স্বতন্ত্র নাম রয়েছে (যেমন কারেন্টডেটা টেবিল), সেখানে এমন কোনও ফাংশন রয়েছে যা টেবিলের নাম, টার্গেট ফাইল এবং পছন্দসই আউটপুট বিন্যাস গ্রহণ করে এবং আউটপুট ফাইলটি লেখে?


আপনার আউটপুট জন্য একটি নির্দিষ্ট পথ আছে? শিটের জন্য কি কেবল একটি টেবিল রয়েছে?
নিকদাদা

একটি নির্দিষ্ট পথ আছে। সাধারণত আমি শীট প্রতি এক টেবিলের মধ্যে সীমাবদ্ধ না
রাখাই

উত্তর:


5

এমন কোনও বিল্ট-ইন এক্সেল কমান্ড বা ফাংশন নেই যা আপনার পছন্দ মতো কাজ করতে পারে তবে আপনি এটি প্রোগ্রাম করার জন্য ভিবিএ ব্যবহার করতে পারেন।

নিম্নলিখিত কোডটি আপনি যা খুঁজছেন তার কাছাকাছি হতে পারে:

Sub ExportTable()

    Dim wb As Workbook, wbNew As Workbook
    Dim ws As Worksheet, wsNew As Worksheet
    Dim wbNewName As String


   Set wb = ThisWorkbook
   Set ws = ActiveSheet

   Set wbNew = Workbooks.Add

   With wbNew
       Set wsNew = wbNew.Sheets("Sheet1")
       wbNewName = ws.ListObjects(1).Name
       ws.ListObjects(1).Range.Copy
       wsNew.Range("A1").PasteSpecial Paste:=xlPasteAll
       .SaveAs Filename:=wb.Path & "\" & wbNewName & ".csv", _
             FileFormat:=xlCSVMSDOS, CreateBackup:=False
   End With

End Sub

কোডটি ধরে নিয়েছে যে প্রতিটি ওয়ার্কশিটে আপনার কাছে একটি টেবিল রয়েছে। এটি একটি নতুন ওয়ার্কবুক তৈরি করে, সেই কর্মপুস্তকের 1 টি শীটে টেবিলটি অনুলিপি করে এবং টেবিলের মতো একই নাম সহ ওয়ার্কবুকটি CSV ফাইল হিসাবে সংরক্ষণ করে।


2

এক্সেল 2013 এর জন্য আমার চফের উত্তরের সংস্করণটি এখানে। এটি মডেল সংলাপগুলি অক্ষম করে:

Sub ExportCSV()

   Dim wb As Workbook, wbNew As Workbook
   Dim ws As Worksheet, wsNew As Worksheet

   Set wb = ThisWorkbook
   Set ws = ActiveSheet

   Set wbNew = Workbooks.Add
   Application.DisplayAlerts = False
   With wbNew
       Set wsNew = wbNew.Sheets("Sheet1")
       ws.Rows.Copy
       wsNew.Paste
       .SaveAs Filename:=ws.name & ".csv", FileFormat:=xlCSV, CreateBackup:=True
       wsNew.Delete
   End With
   Windows(ws.name & ".csv").Activate
   ActiveWindow.Close
   Application.DisplayAlerts = True

End Sub

1

আমারও এটি করার দরকার ছিল, তবে কোন টেবিলগুলি সিএসভি ফাইল হিসাবে রফতানি করতে হয়েছিল তা নির্দিষ্ট করে বলা দরকার। আমি নিম্নলিখিত হিসাবে ভিবিএ সহ 'এক্সপোর্টটবেবলস' নামে একটি পরিসীমা তৈরি করেছি:

Public Sub Export()
    Dim i       As Integer
    Dim iMax    As Integer
    Dim sTable  As String

    iMax = Range("ExportTables").Rows.Count

    For i = 1 To iMax
        sTable = Range("ExportTables").Cells(i, 1).Value
        Call ExportTable(sTable)
    Next i
End Sub

Public Sub ExportTable(tableName As String)
    Dim wkb         As Workbook
    Dim wkbNew      As Workbook
    Dim wks         As Worksheet
    Dim wksNew      As Worksheet

    Set wkb = ThisWorkbook

    Application.Goto Reference:=tableName
    Set wks = ActiveSheet

    Set wkbNew = Workbooks.Add
    Set wksNew = wkbNew.Sheets(1)

    wks.ListObjects(tableName).Range.Copy
    wksNew.Range("A1").PasteSpecial Paste:=xlPasteValues

    Application.DisplayAlerts = False

    wkbNew.SaveAs Filename:=wkb.Path & "\" & tableName & ".csv", _
        FileFormat:=xlCSV, CreateBackup:=False
    wkbNew.Close SaveChanges:=False

    Application.DisplayAlerts = True

    ' Release object variables.
    Set wkb = Nothing
    Set wkbNew = Nothing
    Set wks = Nothing
    Set wksNew = Nothing
End Sub
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.