در خصوص With/End with و (End(xlUp

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

    • 2010/12/22
    • 399

    در خصوص With/End with و (End(xlUp

    با سلام

    داخل بعضی از کد های ویژوال بیسیک از

    کد:
    With ActiveSheet
            LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        End With
    (که بین آنها یک سری کد نویسی میشه)

    میخواستم ببینم
    برای چی هست و چه موقع استفاده میشه؟

    همچنین
    کد:
    End(xlUp)
    چه موقع استفاده میشه
    با تشکر
    [COLOR=#008000][SIZE=7][FONT=arial][B]خواستن ، توانستن است.[/B][/FONT][/SIZE][/COLOR]
  • Nima

    • 2011/07/22
    • 385

    #2
    برای درک بهتر این موضوع یک فایل جدید باز کنید با فرض انکه در ستون a شما تعدادی از سلول ها پر باشه اخرین سلول در ستون a رو انتخاب کنید و دکمه macro recording رو بزنید حالا با استفاده از کلید ترکیبی Ctrl+Shift+Page Up شما به اخرین سلولی در ستون مربوطه دارای دیتا می باشد می روید حالا دکمه stop recording رو بزنید و به قسمت ویژوال برید احتمالا ماکرو شما باید یه چیزی شبیه به
    کد:
        Range("A1048576").Select
        Range(Selection, Selection.End(xlUp)).Select
    باشه که در اصل همون کدی که شما اشاره کردید و برای پیدا کردن اخرین سلول پر در یک ستون استفاده میشود
    [CENTER][COLOR=#ff0000]************************************[/COLOR]
    No [COLOR=#32CD32][B]LION's [/B][/COLOR]roar ruins my hut, I afraid of [COLOR=#ff0000][B]TERMITE's [/B][/COLOR]silence
    [COLOR=#ff0000]************************************[/COLOR]

    [/CENTER]

    کامنت

    • Nima

      • 2011/07/22
      • 385

      #3
      در خصوص ساختارwit/end with هم زمانی که تعداد اعمال تکراری روی یک object مثل رنج یا سلول قرار هست انجام بشود برای جلوگیری از تکرار برخی قسمتهای کد از این ساختار استفاده می گردد


      مثل:
      کد:
      [COLOR=blue]With[/COLOR] Site
              .Name = [COLOR=#A31515]"سایت اموزش اکسل"[/COLOR]
              .URL = [COLOR=#A31515]"http://www.ٍexceliran.com/"[/COLOR]
              .City = [COLOR=#A31515]"تهران"[/COLOR] 
          [COLOR=blue]End[/COLOR] [COLOR=blue]With[/COLOR]
      [CENTER][COLOR=#ff0000]************************************[/COLOR]
      No [COLOR=#32CD32][B]LION's [/B][/COLOR]roar ruins my hut, I afraid of [COLOR=#ff0000][B]TERMITE's [/B][/COLOR]silence
      [COLOR=#ff0000]************************************[/COLOR]

      [/CENTER]

      کامنت

      • Amin_D

        • 2010/12/22
        • 399

        #4
        نوشته اصلی توسط nima
        در خصوص ساختارwit/end with هم زمانی که تعداد اعمال تکراری روی یک object مثل رنج یا سلول قرار هست انجام بشود برای جلوگیری از تکرار برخی قسمتهای کد از این ساختار استفاده می گردد


        مثل:
        کد:
        [COLOR=blue]With[/COLOR] Site
                .Name = [COLOR=#A31515]"سایت اموزش اکسل"[/COLOR]
                .URL = [COLOR=#A31515]"http://www.ٍexceliran.com/"[/COLOR]
                .City = [COLOR=#A31515]"تهران"[/COLOR] 
            [COLOR=blue]End[/COLOR] [COLOR=blue]With[/COLOR]
        سلام
        میبخشید این کدها چیکار میکنن؟
        [COLOR=#008000][SIZE=7][FONT=arial][B]خواستن ، توانستن است.[/B][/FONT][/SIZE][/COLOR]

        کامنت

        • Nima

          • 2011/07/22
          • 385

          #5
          ببینید فکر کن که می خوای از طریق ماکرو یک سری اعمال رو روی یک رنجی مثل A1 انجام بدی در حالت عادی باید بنویسی:

          کد:
          ActiveSheet.Range("A1").Select
          ActiveSheet.Range("A1").Value = "salam"
          ActiveSheet.Range("A1").Font.Color = vbRed
          ActiveSheet.Range("A1").Font.Bold = True
          ActiveSheet.Range("A1").Font.Italic = True
          برای کوتاه شدن کد نویسی میتونی از with/endwith استفاده کنی:

          کد:
          ActiveSheet.Range("A1").Select
          With Selection
              .Value = "salam"
              .Font.Color = vbRed
              .Font.Bold = True
              .Font.Italic = True
          End With
          در حقیقت ذو کد بالا یک کار رو انجام میدن اما به نظر شما کدوم سریعتر و قابل فهم تره؟
          [CENTER][COLOR=#ff0000]************************************[/COLOR]
          No [COLOR=#32CD32][B]LION's [/B][/COLOR]roar ruins my hut, I afraid of [COLOR=#ff0000][B]TERMITE's [/B][/COLOR]silence
          [COLOR=#ff0000]************************************[/COLOR]

          [/CENTER]

          کامنت

          چند لحظه..