当单元格大小为X×Y cm时,计算A4页面中的行数和列数

  • 本文关键字:A4 计算 小为 单元格 cm vba xls
  • 更新时间 :
  • 英文 :


嗨,我整晚都在找,找不到任何能解决问题的东西

我将一个单元格(a:3)定义为len=53mm Hgt=33mm,现在我想调整所有单元格的大小(从a:3到ColLast:RowLast),这些单元格适合预先定义的区域,即指定了Awidth=210和Bht=310的A4页面

还有为什么当我使用以下代码打印单元格时

Sub SetColumnWidthMM(ColNo As Long, mmWidth As Double)
' changes the column width to mmWidth
Dim w As Single
    If ColNo < 1 Or ColNo > 255 Then Exit Sub
    Application.ScreenUpdating = False
    w = Application.CentimetersToPoints(mmWidth / 10)
    While Columns(ColNo + 1).Left - Columns(ColNo).Left - 0.1 > w
        Columns(ColNo).ColumnWidth = Columns(ColNo).ColumnWidth - 0.1
    Wend
    While Columns(ColNo + 1).Left - Columns(ColNo).Left + 0.1 < w
        Columns(ColNo).ColumnWidth = Columns(ColNo).ColumnWidth + 0.1
    Wend
    End Sub

打印的单元格根据我使用的打印机类型而改变大小??

请注意,不同的打印机有不同的页边距。所以,对于不同打印机中的相同内容,您必须期望不同的布局。

始终查看PageSetup.*Margin

最好不要更改列宽,更改页面设置比例。

顺便问一下,你想用你的代码实现什么?

不言自明,我希望:

With Worksheets("sheetname").PageSetup
    .PaperSize = xlPaperA4 'Just to ensure we are using A4
    FullPageWidth_Points = Application.CentimetersToPoints(21#)
    AvailablePageWidth_Points = FullPageWidth_Points - .LeftMargin - .RightMargin
    AvailablePageWidth_Centimeters = AvailablePageWidth_Points /  Application.CentimetersToPoints(1#)
    MaxNumberOfCells = Int(AvailablePageWidth_Points - CellsWidth_Points)
End With

最新更新