ذخيره اطلاعات Sheet1 با فرمت Notepat

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • jeddi

    • 2011/04/21
    • 50

    ذخيره اطلاعات Sheet1 با فرمت Notepat

    سلام و خسته نباشيد به دوستان عزير
    چطور مي تونم مثلا اطلاعات Sheet1 را با فرمت Notepat از طريق CommandButton در مسير Desktop ذخيره كنم
    با تشكر از لطف همه دوستان
  • plc_pcb

    • 2011/10/10
    • 56

    #2
    RE: ذخيره اطلاعات Sheet1 با فرمت Notepat

    نوشته اصلی توسط jeddi
    سلام و خسته نباشيد به دوستان عزير
    چطور مي تونم مثلا اطلاعات Sheet1 را با فرمت Notepat از طريق CommandButton در مسير Desktop ذخيره كنم
    با تشكر از لطف همه دوستان
    کل شیت رو میخوای یا یک قسمتی از شیت رو میخوای؟
    اگه برای کل شیت میخوای از کد زیر استفاده بکن

    [align=left]

    Sub txtfile()
    Dim a, b As String
    ActiveWorkbook.Save
    a = ActiveWorkbook.Path
    b = ActiveWorkbook.Name
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs "C:\txtfile.txt", FileFormat:=20
    Workbooks.Open Filename:=a & "\" & b
    Workbooks("txtfile.txt").Close
    Application.DisplayAlerts = True
    End Sub
    [/align]

    مسیر فایل رو هم میتونی عوض کنی

    کامنت

    • jeddi

      • 2011/04/21
      • 50

      #3
      RE: ذخيره اطلاعات Sheet1 با فرمت Notepat

      دوست عزيز از حسن توجه شما متشكرم
      يه زحمت ديگه براتون دارم اگه ممكنه اين كد و برام معني كني يه قسمتي از آن را نمي فهمم
      Private Sub CommandButton3_Click()
      Set fs = CreateObject("Scripting.FileSystemObject")
      Set a = fs.CreateTextFile("c:\File jeddi.txt", True)
      n = 0
      n1 = 0
      For Each c In Range("I8:I108")
      If c <> "" Then
      n = n + 1
      End If
      Next
      For i = 0 To n + n1
      For i2 = 0 To 5
      tex = tex & "" & Sheet1.Range("I8").Offset(i, i2)
      Next i2
      a.WriteLine tex
      tex = ""
      Next
      MsgBox " فايل مورد نظر با موفقيت انجام شد."
      MsgBox " آدرس فايل ذخيره شده c:\File jeddi.txt "
      End Sub

      کامنت

      • plc_pcb

        • 2011/10/10
        • 56

        #4
        RE: ذخيره اطلاعات Sheet1 با فرمت Notepat

        این کدی که نوشتی ایراد داره
        1- اطلاعات هر سلول رو پشت سر هم مینویسه و برای کسی که فایل رو میبینه خوانا نیست
        راه حلش اینکه یه tab توی کد زیر بزنی
        tex = tex & "" & Sheet1.Range("I8").Offset(i, i2)
        برای اینکه این مشکل حل بشه کد زیر رو جای کد بالا بزار
        tex = tex & " " & Sheet1.Range("I8").Offset(i, i2)
        2- اگر یکی از این خانه ها خالی باشه اطلاعات هر ستون میره تو ستون قبلیش و این یه ایراد خیلی بزرگه
        3-اگه خانه های شیت فایل اکسل شما مقادیر اطلاعات زیادی داشته باشه پیشنهاد میکنم از این کد استفاده نکنی چون ممکنه وقت زیادی بگیره ویا سیستمت هنگ کنه
        4- اگه شما در ستون I سلول خالی داشته باشید به همان تعداد سلول خالی از ردیف های اطلاعات شما کم میشه مثلا شما سلول I9,I10 را خالی قرار دهید و در سلول I11,I12,I8 مقادیر وارد کنید و بقیه خانه ها خالی باشه و ببینید چه اتفاقی میافتد (ردیف I12 از اطلاعات شما وجود ندارد)
        شرح برنامه:
        شما در این کد گفتین برای هر خانه که در رنج I8:I108 قرار داره و خالی نیست تعداد آنها رو در بیار (تعداد خانه هایی که خالی نیستند رو بدست میاره)و در متغیر n قرار بده
        For Each c In Range("I8:I108")
        If c <> "" Then
        n = n + 1
        End If
        Next
        بعد از دو تا حلقه تو رد تو استفاده کردین که همان طور که اطلاع داری حلقه تو در تو تولید ماتریس میکنه یعنی شما به وسیله این روش به صورت یک ماتریس در فایل txt اطلاعات خود را قرار میدهید

        For i = 0 To n + n1
        For i2 = 0 To 5
        tex = tex & "" & Sheet1.Range("I8").Offset(i, i2)
        Next i2
        a.WriteLine tex
        tex = ""
        Next
        این برنامه مشکلات زیادی داره و میتونه در آینده تولید کنه پیشنهاد میکنم از برنامه ای که اینجانب قرار داده ام استفاده کنید

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

        کامنت

        چند لحظه..