تغییر در دستور vba

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • nazi nazi

    • 2015/02/17
    • 104
    • 61.00

    [حل شده] تغییر در دستور vba

    سلام
    در کد زیر که مربوط به save کردن شیت در فرمت pdf هست میخوام تغییراتی بدم لطفا کمک کنید
    در این کد همون شیتی که داخلش هستیم به pdf تبدیل میشه . در یک فایل اکسل یک شیت پنهان دارم که میخوام اون شیت را تبدیل به pdf کنم
    یعنی با همین کد در شیت 1 شیت دو را که پنهان هست به pdf تبدیل کنم
    لطفا راهنمایی کنید
    کد PHP:
    Sub Export()
    Dim ws As Worksheet
    Dim strPath 
    As String
    Dim myFile 
    As Variant
    Dim strFile 
    As String
    On Error 
    GoTo errHandler
    Set ws 
    ActiveSheet
    strFile 
    Replace(Replace(ws.Name" """), ".""_"_
                
    "_" _
                
    Format(Now(), "yyyymmdd\_hhmm"_
                
    ".pdf"
    strFile ThisWorkbook.Path "\" & strFile

    myFile = Application.GetSaveAsFilename _
        (InitialFileName:=strFile, _
            FileFilter:="
    PDF Files (*.pdf), *.pdf", _
            Title:="
    ãÓíÑ æ äÇã ÝÇíá ÑÇ ÌåÊ ÐÎíÑå ÓÇÒí ãÔÎÕ äãÇÆíÏ")

    If myFile <> "
    False" Then
        ws.ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=myFile, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False

        MsgBox "
    .ÝÇíá ÈÇ ãæÝÞíÊ ÇíÌÇÏ ÑÏíÏ"
    End If

    exitHandler:
        Exit Sub
    errHandler:
        MsgBox "
    ÎØÇ ÏÑ ÇíÌÇÏ ÝÇíá"
        Resume exitHandler
    End Sub 
  • Amir Ghasemiyan

    • 2013/09/20
    • 4598
    • 100.00

    #2
    سلام دوست عزیز

    این خط کد رو باید تغییر بدین
    کد:
    Set ws = ActiveSheet
    به این صورت:
    کد:
    Set ws = Sheet2

    کامنت

    • nazi nazi

      • 2015/02/17
      • 104
      • 61.00

      #3
      نوشته اصلی توسط Amir Ghasemiyan
      سلام دوست عزیز

      این خط کد رو باید تغییر بدین
      کد:
      Set ws = ActiveSheet
      به این صورت:
      کد:
      Set ws = Sheet2
      سلام
      ممنون از جواب شما ولی انجام نمیشه
      نام شیت مورد نظر Admin-1 هست که فایل را بپیوست قرار دادم لطفا بررسی نمایید
      فایل های پیوست شده

      کامنت

      • Amir Ghasemiyan

        • 2013/09/20
        • 4598
        • 100.00

        #4
        نوشته اصلی توسط nazi nazi
        سلام
        ممنون از جواب شما ولی انجام نمیشه
        نام شیت مورد نظر Admin-1 هست که فایل را بپیوست قرار دادم لطفا بررسی نمایید
        من اسم شيت رو نذاشتم. شما دقيقا همين Sheet2 رو بايد بنويسيد. اين عبارت كه نوشتم اسم شيت نيست درواقع يه جورايي آي دي شيت هست


        Click image for larger version

Name:	Untitled.png
Views:	1
Size:	11.0 کیلو بایت
ID:	133714

        کامنت

        • nazi nazi

          • 2015/02/17
          • 104
          • 61.00

          #5
          نوشته اصلی توسط Amir Ghasemiyan
          من اسم شيت رو نذاشتم. شما دقيقا همين Sheet2 رو بايد بنويسيد. اين عبارت كه نوشتم اسم شيت نيست درواقع يه جورايي آي دي شيت هست


          [ATTACH=CONFIG]16074[/ATTACH]
          با نوشتن sheet2 هم نمیشه
          هر چی تست میکنم خطا میده
          شاید چون شیت 2 مخفی هست خطا میده

          کامنت

          • Amir Ghasemiyan

            • 2013/09/20
            • 4598
            • 100.00

            #6
            نوشته اصلی توسط nazi nazi
            با نوشتن sheet2 هم نمیشه
            هر چی تست میکنم خطا میده
            شاید چون شیت 2 مخفی هست خطا میده

            بله دقيقا به همين دليل هست كه خطا ميده
            شما اول بايد از حالت مخفي خارجش كنيد و خروجي بگيريد و مجدد مخفي كنيد
            از اين كدها ميتونين كمك بگيريد

            کد:
            Sheet1.Visible = xlSheetHidden
            Sheet1.Visible = xlSheetVisible

            کامنت

            • majid_mx4

              • 2012/06/25
              • 699

              #7
              با سلام

              ضمن تشکر از استاد عزیز جناب آقای قاسمیان فکر کنم که Sheet2 باید جایگزین دستور ایشان بشود به هر روی دستور زیر بر گرفته شده از راهنمایی های ایشان می باشدو
              میتوانید از دستور زیر برای اینکار استفاده نمایید.

              کد:
              Sub Export()
              Dim ws As Worksheet
              Dim strPath As String
              Dim myFile As Variant
              Dim strFile As String
              'On Error GoTo errHandler
              Dim wks As Worksheet
              'Set wks = ActiveWorkbook.Sheet2
               Application.ScreenUpdating = False
              If Sheet2.Visible <> xlSheetVisible Then
              Sheet2.Visible = xlSheetVisible
              Set ws = Sheet2
              strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") _
                          & "_" _
                          & Format(Now(), "yyyymmdd\_hhmm") _
                          & ".pdf"
              strFile = ThisWorkbook.Path & "\" & strFile
              myFile = Application.GetSaveAsFilename _
                  (InitialFileName:=strFile, _
                      FileFilter:="PDF Files (*.pdf), *.pdf", _
                      Title:="ãÓíÑ æ äÇã ÝÇíá ÑÇ ÌåÊ ÐÎíÑå ÓÇÒí ãÔÎÕ äãÇÆíÏ")
              If myFile <> "False" Then
                  ws.ExportAsFixedFormat _
                      Type:=xlTypePDF, _
                      Filename:=myFile, _
                      Quality:=xlQualityStandard, _
                      IncludeDocProperties:=True, _
                      IgnorePrintAreas:=False, _
                      OpenAfterPublish:=False
                  MsgBox ".ÝÇíá ÈÇ ãæÝÞíÊ ÇíÌÇÏ ÑÏíÏ"
              End If
               Sheet2.Visible = xlSheetHidden
               Application.ScreenUpdating = True
               End If
               Set wks = Nothing
              exitHandler:
                  Exit Sub
              errHandler:
                  MsgBox "ÎØÇ ÏÑ ÇíÌÇÏ ÝÇíá"
                  Resume exitHandler
              End Sub

              موفق باشید میر

              کامنت

              • nazi nazi

                • 2015/02/17
                • 104
                • 61.00

                #8
                ممنون از پاسخ
                فقط کد بالا یه مشکلی داره که وقتی نام فایل سیو شده را تغییر میدی دیگه اجرا نمیشه و خطا میده

                کامنت

                • Amir Ghasemiyan

                  • 2013/09/20
                  • 4598
                  • 100.00

                  #9
                  نوشته اصلی توسط nazi nazi
                  ممنون از پاسخ
                  فقط کد بالا یه مشکلی داره که وقتی نام فایل سیو شده را تغییر میدی دیگه اجرا نمیشه و خطا میده
                  منظورتون نام فايل اكسل هست يا اسم شيت؟ به هر اسمي بذاريد اين مشكل رو داريد؟

                  کامنت

                  • nazi nazi

                    • 2015/02/17
                    • 104
                    • 61.00

                    #10
                    نوشته اصلی توسط Amir Ghasemiyan
                    منظورتون نام فايل اكسل هست يا اسم شيت؟ به هر اسمي بذاريد اين مشكل رو داريد؟
                    کلا مشکل داره هم اسم فایل هم اسم فایلی که موقع سیو شدن میخواد را عوض کنی خطا میده
                    کلا نمیدونم چرا یکی دو بار بیشتر کار نمیکنه

                    کامنت

                    • Amir Ghasemiyan

                      • 2013/09/20
                      • 4598
                      • 100.00

                      #11
                      نوشته اصلی توسط nazi nazi
                      کلا مشکل داره هم اسم فایل هم اسم فایلی که موقع سیو شدن میخواد را عوض کنی خطا میده
                      کلا نمیدونم چرا یکی دو بار بیشتر کار نمیکنه
                      فايلتون رو ضميمه كنيد بررسي كنم

                      کامنت

                      • nazi nazi

                        • 2015/02/17
                        • 104
                        • 61.00

                        #12
                        نوشته اصلی توسط Amir Ghasemiyan
                        فايلتون رو ضميمه كنيد بررسي كنم
                        فایلش تا rar نباشه قابلیت ارسال نداره
                        فایل های پیوست شده

                        کامنت

                        • Amir Ghasemiyan

                          • 2013/09/20
                          • 4598
                          • 100.00

                          #13
                          نوشته اصلی توسط nazi nazi
                          فایلش تا rar نباشه قابلیت ارسال نداره

                          بله كاربرا امكان آپلود فايل هاي xlsm رو ندارند

                          شما كدهاتون رو اصلاح نكردين هنوز. خطايي كه ميده به تغيير نام ربط نداره. كدهايي كه خدمتتون ارسال ميكنم رو جايگزين كدهاي خودتون بفرماييد


                          کد:
                          Sub Export()
                          Dim ws As Worksheet
                          Dim strPath As String
                          Dim myFile As Variant
                          Dim strFile As String
                          On Error GoTo errHandler
                          Set ws = Sheet2
                          Sheet2.Visible = xlSheetVisible
                          strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") _
                                      & "_" _
                                      & Format(Now(), "yyyymmdd\_hhmm") _
                                      & ".pdf"
                          strFile = ThisWorkbook.Path & "\" & strFile
                          
                          
                          myFile = Application.GetSaveAsFilename _
                              (InitialFileName:=strFile, _
                                  FileFilter:="PDF Files (*.pdf), *.pdf", _
                                  Title:="ãÓíÑ æ äÇã ÝÇíá ÑÇ ÌåÊ ÐÎíÑå ÓÇÒí ãÔÎÕ äãÇÆíÏ")
                          
                          
                          If myFile <> "False" Then
                              ws.ExportAsFixedFormat _
                                  Type:=xlTypePDF, _
                                  Filename:=myFile, _
                                  Quality:=xlQualityStandard, _
                                  IncludeDocProperties:=True, _
                                  IgnorePrintAreas:=False, _
                                  OpenAfterPublish:=False
                          
                          
                              MsgBox ".ÝÇíá ÈÇ ãæÝÞíÊ ÇíÌÇÏ ÑÏíÏ"
                          End If
                          Sheet2.Visible = xlSheetHidden
                          exitHandler:
                              Exit Sub
                          errHandler:
                              MsgBox "ÎØÇ ÏÑ ÇíÌÇÏ ÝÇíá"
                              Resume exitHandler
                          End Sub

                          کامنت

                          • nazi nazi

                            • 2015/02/17
                            • 104
                            • 61.00

                            #14
                            نوشته اصلی توسط Amir Ghasemiyan

                            بله كاربرا امكان آپلود فايل هاي xlsm رو ندارند

                            شما كدهاتون رو اصلاح نكردين هنوز. خطايي كه ميده به تغيير نام ربط نداره. كدهايي كه خدمتتون ارسال ميكنم رو جايگزين كدهاي خودتون بفرماييد


                            کد:
                            Sub Export()
                            Dim ws As Worksheet
                            Dim strPath As String
                            Dim myFile As Variant
                            Dim strFile As String
                            On Error GoTo errHandler
                            Set ws = Sheet2
                            Sheet2.Visible = xlSheetVisible
                            strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") _
                                        & "_" _
                                        & Format(Now(), "yyyymmdd\_hhmm") _
                                        & ".pdf"
                            strFile = ThisWorkbook.Path & "\" & strFile
                            
                            
                            myFile = Application.GetSaveAsFilename _
                                (InitialFileName:=strFile, _
                                    FileFilter:="PDF Files (*.pdf), *.pdf", _
                                    Title:="ãÓíÑ æ äÇã ÝÇíá ÑÇ ÌåÊ ÐÎíÑå ÓÇÒí ãÔÎÕ äãÇÆíÏ")
                            
                            
                            If myFile <> "False" Then
                                ws.ExportAsFixedFormat _
                                    Type:=xlTypePDF, _
                                    Filename:=myFile, _
                                    Quality:=xlQualityStandard, _
                                    IncludeDocProperties:=True, _
                                    IgnorePrintAreas:=False, _
                                    OpenAfterPublish:=False
                            
                            
                                MsgBox ".ÝÇíá ÈÇ ãæÝÞíÊ ÇíÌÇÏ ÑÏíÏ"
                            End If
                            Sheet2.Visible = xlSheetHidden
                            exitHandler:
                                Exit Sub
                            errHandler:
                                MsgBox "ÎØÇ ÏÑ ÇíÌÇÏ ÝÇíá"
                                Resume exitHandler
                            End Sub
                            ممنونم انجام شد

                            کامنت

                            • Amir Ghasemiyan

                              • 2013/09/20
                              • 4598
                              • 100.00

                              #15
                              نوشته اصلی توسط nazi nazi
                              ممنونم انجام شد
                              خواهش میکنم.اگه جوابتون رو گرفتین لطف کنید تاپیک رو حل شده کنید

                              کامنت

                              چند لحظه..