應(yīng)用場(chǎng)景 調(diào)整圖片大小以適應(yīng)單元格,、調(diào)整單元格大小適應(yīng)圖片 知識(shí)要點(diǎn) 1:Shape.LockAspectRatio 屬性 如果指定的形狀在調(diào)整大小時(shí)其原始比例保持不變,,則此屬性為 True,反之為False 2:?jiǎn)卧竦膆eight屬性與圖形對(duì)象的height屬性單位一致,可直接設(shè)置 3:?jiǎn)卧竦膚idth寬度和圖形對(duì)象的width單位不一致,,需要轉(zhuǎn)換round(roung(圖片寬度/0.75 - iif(圖片寬度>9.,5,0),0)/iif(圖片寬度>9,8,13),2)進(jìn)行轉(zhuǎn)換 Sub 讓單元格適應(yīng)圖片() Dim i As Integer, ShWidth, NewWidth, ShHeight, MaxWidth Application.ScreenUpdating = False '關(guān)閉屏幕刷新 With ActiveSheet '引用工作表 For i = 1 To .Shapes.Count .Shapes(i).Left = .Shapes(i).TopLeftCell.Left '統(tǒng)一左邊距 .Shapes(i).Top = .Shapes(i).TopLeftCell.Top '統(tǒng)一上邊距 .Shapes(i).TopLeftCell.RowHeight = .Shapes(i).Height '統(tǒng)一高度 ShWidth = .Shapes(i).Width '記錄圖片的寬度 '將圖片的寬度換算成可以用于列寬的寬度(因?yàn)閮蓚€(gè)單位完全不同) '字符,,最適合的列寬 NewWidth = Round(Round(ShWidth / 0.75 - IIf(ShWidth > 9, 5, 0), 0) / IIf(ShWidth > 9, 8, 13), 2) If MaxWidth < ShWidth Then '如果圖片在寬度大于變量maxwidth '以換算后的寬度為標(biāo)準(zhǔn)設(shè)置單元格的寬度 .Shapes(i).TopLeftCell.ColumnWidth = NewWidth MaxWidth = ShWidth '將圖片的寬度賦予變量 maxwidth End If Next i End With Application.ScreenUpdating = True End Sub |
|