Thay đổi kích thước hộp văn bản trong Macro (Microsoft Excel)
Rob có một hộp văn bản, trong một trang tính, chứa văn bản được sao chép từ Word.
Anh ấy muốn biết làm thế nào anh ấy có thể thay đổi kích thước hộp văn bản bằng cách sử dụng macro, để nó bao phủ một phạm vi ô cụ thể.
Có một số cách bạn có thể tiếp cận nhiệm vụ này. Một là chỉ định, trong macro, chính xác những ô bạn muốn bao phủ bằng hộp văn bản, sau đó điều chỉnh các thuộc tính của hộp văn bản để phù hợp với đặc điểm của các ô bạn chỉ định.
Sub ResizeBox1() Dim sTL As String Dim sBR As String Dim rng As Range ' Change top-left and bottom-right addresses as desired sTL = "A1" sBR = "M40" ' Ensure a text box is selected If TypeName(Selection) <> "TextBox" Then MsgBox "Text box not selected" Exit Sub End If With Selection Set rng = ActiveSheet.Range(sTL) .Top = rng.Top .Left = rng.Left Set rng = ActiveSheet.Range(sBR) .Width = rng.Left + rng.Width .Height = rng.Top + rng.Height End With Set rng = Nothing End Sub
Để sử dụng macro, hãy thay đổi địa chỉ của các ô bạn muốn sử dụng cho phía trên bên trái và dưới cùng bên phải của hộp văn bản. Sau đó, chọn hộp văn bản và chạy macro.
Nếu muốn, bạn có thể sử dụng một dải ô đã đặt tên để chỉ định dải ô được bao phủ bởi hộp văn bản. Macro sau dự kiến rằng phạm vi sẽ được đặt tên là RangeToCover. Khi bạn chọn hộp văn bản và chạy macro, hộp văn bản sẽ được thay đổi kích thước để phù hợp với kích thước của phạm vi.
Sub ResizeBox2() Dim l_rRangeToCover As Range Dim l_rLowerRight As Range ' Ensure a text box is selected If TypeName(Selection) <> "TextBox" Then MsgBox "Text box not selected" Exit Sub End If ' Get the range to cover Set l_rRangeToCover = _ ActiveSheet.Range(Names("RangeToCover").RefersToRange.Value) ' Get its lower right cell Set l_rLowerRight = _ l_rRangeToCover.Cells( _ l_rRangeToCover.Rows.Count, _ l_rRangeToCover.Columns.Count) ' Resize the text box With Selection .Left = l_rRangeToCover.Left .Top = l_rRangeToCover.Top .Width = l_rLowerRight.Left + l_rLowerRight.Width - .Left .Height = l_rLowerRight.Top + l_rLowerRight.Height - .Top End With End Sub
_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 (3143) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: