ضبط ماکرو در آدرس دهی نسبی(Relative) یا مطلق(Absolute)

 

 

 

 

 

 

ولی در آدرس دهی نسبی چیزی به نام آدرس C3 نداریم و هر سلول نسبت به آدرس دیگری سنجیده می شود. در واقع C3  نسبت به c1  نقطه(2,0) است.

 

 

برای ضبط ماکرو در حالت Relative‌ کافیست که قبل از شروع به ضبط آن بر روی دگمهUse Relative Refrence در تب Developer  کلیک کنید.

 

 

تفاوت این دو نوع آدرس دهی به کمک مثال بعدی نشان داده می‌شود.

 

مثال: به سلول c1 بروید. عبارت test را در آن تایپ کنید. سپس محتوای این سلول را کپی کرده و به سلول c3 بروید و آنرا در آنجا کپی کنید.

  حل مثال و ضبط ماکرو در آدرس دهی مطلق

گامهای ایجاد یک ماکرو را به دقت طی کنید. می توانید ماکرو را Absolute_Recording نامگذاری کنید.

کدهای تولید شده به این روش شبیه کدهای زیر خواهند بود:

Sub Absolute_Recording()

'

' Absolute_Recording Macro

'

'

    ActiveCell.FormulaR1C1 = "test"

    Range("C3").Select

    ActiveSheet.Paste

End Sub

وقتی این ماکرو را اجرا کنید در سلولی که هستید عبارت tset نوشته می شود و سپس همین عبارت هم در سلول C3 کپی می‌شود.

حل مثال و ضبط ماکرو در آدرس دهی نسبی

قبل از ضبط ماکرو،  Use Relative Refrence در تب Developer   را کلیک کنید تا به حالت آدرس دهی نسبی بروید.

حال گامهای ایجاد یک ماکرو به دقت طی کنید. می توانید ماکرو را Relative_Recording  نامگذاری کنید.

کدهای تولید شده به این روش شبیه کدهای زیر خواهند بود:

Sub Relative_Recording()

'

' Relative_Recording Macro


    ActiveCell.FormulaR1C1 = "test"

    Selection.Copy

    ActiveCell.Offset(2, 0).Range("A1").Select

    ActiveSheet.Paste

End Sub

 

وقتی این ماکرو را اجرا کنید عبارت test در سلولی که هستید و سلولی که دو ردیف پایین تر از آن هست نوشته می شود.

همانطور که می‌بینید در کدهای تولید شده به روش آدرس دهی نسبی عبارت
( Offset(2, 0 مشاهده می شود که به سلول دو ردیف پایین تر اشاره می کند.

(البته در بخشی از کد عبارت"(Range("A1 دیده می شود در صورتیکه ما کاری به A1 ‌ نداشتیم این بخش بطور خودکار توسط ماکرو رکوردر تولید شده است  و به آن توجهی نکنید.)

/ 0 نظر / 332 بازدید