以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 代码生成excel表格时列宽如何控制? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=163314)
|
-- 作者:YDS
-- 发布时间:2021/4/23 9:19:00
-- 代码生成excel表格时列宽如何控制?
代码生成excel表格时列宽如何控制?Dim Book As New XLS.Book Dim Sheet As XLS.Sheet = Book.Sheets(0) \'定义列宽 Sheet.Cols(0).Width = 120 Sheet.Cols(1).Width = 80 Sheet.Cols(2).Width = 80 Sheet.Cols(3).Width = 80 我如果想让第五列自动列宽,代码要如何写? Sheet.Cols(4).Width = ?
|
-- 作者:有点蓝
-- 发布时间:2021/4/23 9:29:00
--
如果反过来,希望自动调整单元格大小,使单元格能够显示全部数据。这需要用到AutoFit方法。如:
Dim App As New MSExcel.Application Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\Report.xls") Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1) Dim Rg As MSExcel.Range = Ws.Range("A1") Rg.Value = "Foxtable操控Excel全攻略" Rg.Font.Size = 50 \'把字体放大 Rg.EntireColumn.AutoFit \'自动调整列宽 Rg.EntireRow.AutoFit \'自动调整行高 App.Visible = True
如果要调整工作表全部单元格的大小,可以使用Cells属性。如:
Dim App As New MSExcel.Application Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\Report.xls") Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1) Dim Rg As MSExcel.Range = Ws.Cells Rg.EntireColumn.AutoFit \'自动调整列宽 Rg.EntireRow.AutoFit \'自动调整行高 App.Visible = True
|
-- 作者:YDS
-- 发布时间:2021/4/23 9:40:00
--
也就是我需要先生成excel文件,然后再用vba的方法调整列宽,没有办法在保存为excel文件之前就设定列宽吗?
|
-- 作者:有点蓝
-- 发布时间:2021/4/23 9:45:00
--
直接使用vba填充和生成excel文件
|
-- 作者:YDS
-- 发布时间:2021/4/23 9:47:00
--
主要是员工电脑现在用的都是wps,没有安装office应该使用不了vba吧?
|
-- 作者:有点蓝
-- 发布时间:2021/4/23 9:48:00
--
试试不就知道了
|
-- 作者:有点蓝
-- 发布时间:2021/4/23 9:50:00
--
如果使用XLS.Book,有个笨方法,给这个列赋值的时候,记录这一列单元格最大长度的字符长度,然后大概估算一下宽度,最后再设置这一列的宽度
|
-- 作者:YDS
-- 发布时间:2021/4/23 9:55:00
--
此主题相关图片如下:snipaste_2021-04-23_09-54-41.png
|
-- 作者:有点蓝
-- 发布时间:2021/4/23 10:01:00
--
那就只能使用7楼方法了
|