Jonathan đang tạo macro và cần điền giá trị vào một dải ô. Ví dụ: nếu anh ta cần điền vào phạm vi A1: C1, hiện tại cần ba câu lệnh để điền vào phạm vi đó:

Range("A1") = "Test1"

Range("B1") = "Test2"

Range("C1") = "Test3"

Anh ấy tự hỏi liệu có cách nào để điền chúng vào một câu lệnh duy nhất, tương tự như sau không:

Range("A1:C1") = ("Test1","Test2","Test3")

Cú pháp mong muốn của Jonathan gần giống, nhưng nó sẽ không hoạt động. Đây là cách nó sẽ hoạt động:

Range("A1:C1") = Array("Test1","Test2","Test3")

Lưu ý việc sử dụng câu lệnh Array, câu lệnh này cho VBA biết rằng những gì sau đây nên được coi là một chuỗi giá trị được sử dụng trong chuỗi các ô ở bên trái toán tử. Điều thú vị là bạn có thể nhồi các giá trị vào các biến và cũng có thể sử dụng câu lệnh Array, như được hiển thị ở đây:

sOne = "Apples"

sTwo = "Oranges"

sThree = "Artichokes"

Range("A1:C1") = Array(sOne, sTwo, sThree)

Bạn cũng có thể làm việc với các biến thẳng, nếu bạn thích:

Dim sMyStrings(2) As String sMyStrings(0) = "Apples"

sMyStrings(1) = "Oranges"

sMyStrings(2) = "Artichokes"

Range("A1:C1") = sMyStrings

Đoạn mã trên cũng có thể được viết lại, như sau:

Dim sMyStrings(2) As String sMyStrings = Array("Apples", "Oranges", "Artichokes")

Range("A1:C1") = sMyStrings

Cuối cùng, nếu bạn muốn đặt các giá trị vào một cột duy nhất chứ không phải trong một hàng, bạn sẽ cần sử dụng hàm Transpose, theo cách này:

Range("A1:A3") = Application.Transpose(Array("Test1","Test2","Test3"))

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (11702) áp dụng cho Microsoft Excel 2007, 2010, 2013 và 2016.

Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: