جاناتان در حال ایجاد یک ماکرو است و باید محدوده ای از سلول ها را با مقادیر پر کند. به عنوان مثال، اگر او نیاز به پر کردن محدوده A1:C1 داشته باشد، در حال حاضر سه عبارت برای پر کردن آن محدوده لازم است:
Range("A1") = "Test1"
Range("B1") = "Test2"
Range("C1") = "Test3"
او متعجب است که آیا راهی برای پر کردن آنها در یک عبارت واحد وجود دارد، شبیه به زیر:
Range("A1:C1") = ("Test1","Test2","Test3")
نحو مورد نظر جاناتان نزدیک است، اما کار نمی کند. در اینجا چگونه کار خواهد کرد:
Range("A1:C1") = Array("Test1","Test2","Test3")
به استفاده از دستور Array توجه کنید، که به VBA می گوید آنچه در زیر می آید باید دنباله ای از مقادیر در نظر گرفته شود تا در دنباله سلول های سمت چپ عملگر استفاده شود. به اندازه کافی جالب توجه است، می توانید مقادیر را در متغیرها قرار دهید و همچنین از دستور Array استفاده کنید، همانطور که در اینجا نشان داده شده است:
sOne = "Apples"
sTwo = "Oranges"
sThree = "Artichokes"
Range("A1:C1") = Array(sOne, sTwo, sThree)
در صورت تمایل می توانید با متغیرهای مستقیم نیز کار کنید:
Dim sMyStrings(2) As String
sMyStrings(0) = "Apples"
sMyStrings(1) = "Oranges"
sMyStrings(2) = "Artichokes"
Range("A1:C1") = sMyStrings
کد بالا نیز می تواند به صورت زیر بازنویسی شود:
Dim sMyStrings(2) As String
sMyStrings = Array("Apples", "Oranges", "Artichokes")
Range("A1:C1") = sMyStrings
در نهایت، اگر میخواهید مقادیر را به جای یک ردیف در یک ستون قرار دهید، باید از تابع Transpose به این صورت استفاده کنید:
Range("A1:A3") = Application.Transpose(Array("Test1","Test2","Test3"))