|
按照罗刚君的代码调试,出现下图的错误,另外代码中的MaxWidth为啥也没有赋值?(我的系统是win10 64位,excel2010.)
- Sub 让单元格适应图片()
- Dim i As Integer, ShWidth, NewWidth, ShHeight, MaxWidth
- Application.ScreenUpdating = False '关闭屏幕更新
- With ActiveSheet '引用工作表
- For i = 1 To .Shapes.Count '遍历所有图形对象
- .Shapes(i).Left = .Shapes(i).TopLeftCell.Left '统一左边距
- .Shapes(i).Top = .Shapes(i).TopLeftCell.Top '统一上边距
- .Shapes(i).TopLeftCell.RowHeight = .Shapes(i).Height '统一高度
- '调整宽度,不是统一,而要以宽度最大的图片为标准,从而使所有图片都容纳进单元格中
- ShWidth = .Shapes(i).Width '记录图片的宽度
- '将图片的宽度换算成可用于列宽的宽度(因为两个单位完全不同)
- NewWidth = Round(Round(ShWidth / 0.75 - IIf(ShWidth > 9, 5, 0), 0) / IIf(ShWidth > 9, 8, 13), 2) ' 字符,最适合的列宽
- If MaxWidth < ShWidth Then '如果图片在宽度大于变量MaxWidth
- .Shapes(i).TopLeftCell.ColumnWidth = NewWidth '以换算后的宽度为标准设置单元格的宽度
- MaxWidth = ShWidth '将图片的宽度赋予变量MaxWidth
- End If
- Next i
- End With
- Application.ScreenUpdating = True
- End Sub
复制代码
|
|