Jean thích sử dụng cài đặt “Lựa chọn giữa các ô” trên tab Căn chỉnh của hộp thoại Định dạng Ô để căn giữa thông tin trên các ô chưa hợp nhất. Tuy nhiên, cô ấy tự hỏi, nếu có cách nào đó cô ấy có thể sử dụng nội dung của một ô để kiểm soát số lượng ô xảy ra ở giữa. Ví dụ: nếu cô ấy có số 4 trong ô A1, thì căn giữa sẽ nằm trên 4 ô (B1: E1), nhưng nếu cô ấy thay đổi nó thành 5 thì căn giữa sẽ nằm trên 5 ô (B1: F1).

Cách duy nhất có thể làm được điều này là sử dụng macro. Bởi vì bạn có thể thay đổi giá trị trong ô A1, macro cần chạy bất cứ khi nào bạn thực hiện thay đổi đối với sổ làm việc và sau đó xác định xem thay đổi đó có được thực hiện trong ô A1 hay không. Nếu vậy, nó có thể thực hiện điều chỉnh cho các ô trong hàng.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim sWidth As String     Dim sStartCell As String     Dim iWidth As Integer     Dim r As Range     Dim sTemp As String

sWidth = "$A$1"

sStartCell = "$B$1"



If Target.Address = sWidth Then         iWidth = Range(sWidth).Value         If iWidth > 1 Then             sTemp = Right(sStartCell, 1)

sTemp = sTemp & ":" & sTemp             Range(sTemp).HorizontalAlignment = xlGeneral

Set r = Range(sStartCell)

Set r = r.Resize(1, iWidth)

r.HorizontalAlignment = xlCenterAcrossSelection         End If     End If End Sub

Lưu ý rằng macro này được đặt trong bảng mã cho trang tính mà bạn muốn ảnh hưởng. Bất cứ khi nào thay đổi được thực hiện trong trang tính, macro sẽ tự động chạy. Để làm cho nó hoạt động cho bạn, bạn nên thay đổi địa chỉ được gán cho các biến sWidth và sStartCell. sWidth được đặt thành ô chứa bao nhiêu cột bạn muốn căn giữa. sStartCell được đặt thành ô đầu tiên ở bên trái của phạm vi nơi căn giữa sẽ xảy ra.

Macro lấy bất cứ thứ gì có trong ô sWidth của bạn và đặt nó vào biến iWidth. Nếu giá trị này lớn hơn 1, thì thay đổi căn giữa sẽ diễn ra. (Không có ý nghĩa gì khi căn giữa một vùng chọn có chiều rộng ít hơn 2 cột.) Việc căn chỉnh của tất cả các ô là hàng được đặt trở lại chung và sau đó một phạm vi được xác định rộng như bạn đã chỉ định, bắt đầu tại ô trong sStartCell. Đối với phạm vi này, căn chỉnh được đặt thành xlCenterAcrossSelection để cho kết quả mong muốn.

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

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