我想在附图中更改此Excel中的形状宽度。大小将由包含数据的最后一列确定,在本例中为E列。
我添加了以下代码:
Sub UsedRange_Example_Column()
Dim LastColumn As Long
With ActiveSheet.UsedRange
LastColumn = .Columns(.Columns.Count).Column
End With
iCol = 0
For i = 3 To LastColumn
iCol = ActiveSheet.Cells(1, i).ColumnWidth + iCol
Next i
ActiveSheet.Shapes("Shape 37").Width = (iCol) * 5.72
End Sub
但是,我无法确定我应该用来改变大小的乘数因为5.72没有给我正确的结果。请注意,B列的大小为1英寸。
答案 0 :(得分:2)
假设你的形状从col B开始,也许是这样的。我没有指定形状的顶部。
Sub UsedRange_Example_Column()
Dim LastColumn As Long
With ActiveSheet.UsedRange
LastColumn = .Columns(.Columns.Count).Column
End With
With ActiveSheet.Shapes("Shape 37")
.Left = Range("B1").Left
.Width = Range("B1").Resize(, LastColumn - 1).Width
End With
End Sub
答案 1 :(得分:0)
您可以将其设置为相关范围的宽度:
Sub UsedRange_Example_Column()
Dim dataRng As Range, ws As Worksheet
Set ws = ThisWorkbook.Worksheets(1)
Set dataRng = ws.UsedRange
With ws.Shapes("Shape 37")
.Left = dataRng.Left
.Width = dataRng.Width
End With
End Sub
你应该养成尽可能使用ActiveSheet
的习惯(大部分时间都是这样)。始终声明您的工作表,因为这可以避免许多调试噩梦。