调整宏中文本框的大小(Microsoft Excel)
Rob在工作表中有一个文本框,其中包含从Word复制的文本。
他想知道如何使用宏调整文本框的大小,以便覆盖特定范围的单元格。
您可以通过两种方法来完成此任务。一种是在宏中指定要用文本框覆盖的单元格的确切位置,然后调整文本框的属性以匹配指定单元格的特征。
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
为了使用宏,请更改要用于文本框左上角和右下角的单元格的地址。然后,选择文本框并运行宏。
如果愿意,可以使用命名范围来指定文本框要覆盖的范围。下面的宏期望该范围将被命名为RangeToCover。当您选择文本框并运行宏时,将调整文本框的大小以匹配范围的大小。
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
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(3143)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: