VB如何调整excel表格行高和列宽
用ActiveSheet.PageSetup.PaperSize=xlPaperA4设置了页面大小为A4纸大小,用类似Selection.ColumnWidth=25,这...
用ActiveSheet.PageSetup.PaperSize = xlPaperA4设置了页面大小为A4纸大小,用类似Selection.ColumnWidth = 25,这样设置4列刚好为A4纸宽,但因与A4纸的宽单位毫米不一致,一台电脑设好了换了电脑就可能不一样了,如这里的25要换成什么样的表达式才能通用ColumnWidth =?
展开
5个回答
展开全部
限制了列宽,行高(RowHeight)也限制下。
还没验证是否可行,要不你试试:
Columns("A:D").AutoFit
‘AutoFit 可以根据内容调整最合适的列宽。
这可能还不够,字体大小也得控制下。
更多追问追答
追问
说了其它代码我已写好了,包括字体大小,页面大小为A4纸,居中等等 ,现在只是设置行高和列宽,要把这部分设置为A4纸一样大,打印出来要刚好一满张A4纸,解决不了
追答
没具体代码也不好进行补充,一些想法:
行、列值固定
页边距固定(参考:pagesetup)
设置打印区域 (ActiveSheet.PageSetup.PrintArea ="$A$1:$D$30")
禁止缩放(.PageSetup.Zoom = false)
打印是允许缩放的(全部打在一张纸上,代码不知道怎么写.....)
你需要做一个debug的部分,打印相关的值(比如行高、列宽、页边距等等),在其他电脑上运行代码之后得到这些值,以便做出比较,哪些变了,哪些没变,哪些设置无效,就好控制了。
展开全部
其实A4纸的大小是定死的,也就是210*297毫米
你的问题其实可以归结为:
1,单元格行宽与列宽的设定,(按照前边所说的A4大小,调整好单元格 列宽与行高,
行高是RowHeight 列宽是ColumnWidth)
2、打印时的页边距设定,
3、打印时纸张大小的设定(这一步你已做好)
4、打印时是否缩放的设定
------
Worksheets("Sheet1").PageSetup. CenterVertically = True’将工作表设置成垂直居中
Worksheets("Sheet1").PageSetup.CenterHorizontally = True’将工作表设置成水平居中
TopMargin:以磅为单位返回或设置上边距的大小
BottomMargin:以磅为单位返回或设置底端边距的大小
FooterMargin:以磅为单位返回或设置页脚到页面底端的距离
HeaderMargin:以磅为单位返回或设置页面顶端到页眉的距离
RightMargin:以磅为单位返回或设置右边距的大小
LeftMargin:以磅为单位返回或设置左边距的大小
禁止缩放(.PageSetup.Zoom = false)
--------------------
你的问题其实可以归结为:
1,单元格行宽与列宽的设定,(按照前边所说的A4大小,调整好单元格 列宽与行高,
行高是RowHeight 列宽是ColumnWidth)
2、打印时的页边距设定,
3、打印时纸张大小的设定(这一步你已做好)
4、打印时是否缩放的设定
------
Worksheets("Sheet1").PageSetup. CenterVertically = True’将工作表设置成垂直居中
Worksheets("Sheet1").PageSetup.CenterHorizontally = True’将工作表设置成水平居中
TopMargin:以磅为单位返回或设置上边距的大小
BottomMargin:以磅为单位返回或设置底端边距的大小
FooterMargin:以磅为单位返回或设置页脚到页面底端的距离
HeaderMargin:以磅为单位返回或设置页面顶端到页眉的距离
RightMargin:以磅为单位返回或设置右边距的大小
LeftMargin:以磅为单位返回或设置左边距的大小
禁止缩放(.PageSetup.Zoom = false)
--------------------
追问
追答
你说的这个,我认为可以这样确定,你现在的电脑用EXCEL调整好,然后用右键看一下行高,在别人电脑上的时候,也调整成这个数字,就可以了,只要调整好,页边距与行高,打印时,是不会移位的,当然了,页边距的6个参数都要设定一下的,还要注意,不能设为0,设成一个适当的数值吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
vba设置excel的行高和列宽,方法很简单 在excel环境,使用录制宏的办法,以OFFICE2010为例,过程如下: 1,使用菜单,【试图】--【宏】--【录制宏】; 2,然后,你随意设置几个行高,和列宽。
追问
这方法用过了,适应不了刚好A4纸那么大。我要做到刚好A4纸那么大,打条形码用,错位一点条形码就废了,必须准确对位好,这只是我代码的一部分,其余已写好,我是要导出数据至新工作簿,同时设置新工作簿工作表的行高和列宽,4列30行,刚好A4纸那么大,并且换了电脑换了打印机要不影响。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先在VB中引用microsoft excel object library
假设c盘根目录下有个1.xls的文件
…………
问题补充:
你的要求很简单,
一行指令恐怕不行,
最少要三行
代码如下:
Private Sub Form_Load()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim i As Integer
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:\1.xls")
Set xlSheet = xlBook.Worksheets(1) '引用第1张工作表
For i = 3 To 100 Step 3 '想到哪行就把100改成几
xlSheet.Range(Cells(i, 1), Cells(i, 2)).Merge '合并a1:b2单元格
Next
xlSheet.Rows(10).RowHeight = 100 '把第10行高度设为100
xlBook.Save
xlApp.Application.Quit
Set xlApp = Nothing '表忘释放引用
End Sub
运行一下,看看满足要求否。
假设c盘根目录下有个1.xls的文件
…………
问题补充:
你的要求很简单,
一行指令恐怕不行,
最少要三行
代码如下:
Private Sub Form_Load()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim i As Integer
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:\1.xls")
Set xlSheet = xlBook.Worksheets(1) '引用第1张工作表
For i = 3 To 100 Step 3 '想到哪行就把100改成几
xlSheet.Range(Cells(i, 1), Cells(i, 2)).Merge '合并a1:b2单元格
Next
xlSheet.Rows(10).RowHeight = 100 '把第10行高度设为100
xlBook.Save
xlApp.Application.Quit
Set xlApp = Nothing '表忘释放引用
End Sub
运行一下,看看满足要求否。
追问
兄弟,答非所问啊,这样会让人讨厌的哦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不可能正好是A4大小的,如果行高不一样,有的可能会多几行,有的会少几行。
追问
我的是3行一循环,30能调成一页,那60行就是两页,90行就是3页,为什么不行?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |