【发布时间】:2017-01-27 18:28:57
【问题描述】:
我未能在 Visual Basic 应用程序中设置 Excel 电子表格的行高和列宽。
我有一个 Visual Basic 应用程序,我的剪贴板中有数据。我将该代码复制到excel实例中,然后让excel保存生成的电子表格,然后excel关闭。我试图在保存电子表格之前以编程方式设置行高和单元格宽度,但一直无法这样做。这是我正在执行的代码:
If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim oXL As Excel.Application
Dim oWB As Excel.Workbook
Dim oSheet As Excel.Worksheet
oXL = CreateObject("Excel.Application")
oXL.Visible = True
oWB = oXL.Workbooks.Add
oSheet = oWB.ActiveSheet
oSheet.Paste()
oSheet.Cells.Select()
oSheet.Selection.RowHeight = 11.4
oSheet.Cells.EntireColumn.AutoFit()
oSheet = Nothing
oWB.Close(True, SaveFileDialog1.FileName)
oWB = Nothing
oXL.Quit()
oXL = Nothing
MsgBox("Finished!")
End If
应用程序在没有 oSheet.Cells.Select()、oSheet.Selection.RowHeight = 11.4 和 oSheet.Cells.EntireColumn.AutoFit() 的情况下运行 线。使用这些行,我会收到以下错误对话框消息:
未找到类型“工作表”上的公共成员“选择”。
当我在 Visual Studio 中跟踪程序时,执行 oSheet.Paste() 命令并执行 oSheet.Cells.Select() 命令。当我尝试执行 oSheet.Selection.RowHeight = 11.4 命令时会产生异常。
任何帮助将不胜感激。
乔纳森
【问题讨论】:
-
试试这个
oSheet.Rows("1:1").RowHeight = 11.4并删除oSheet.Cells.Select() -
如果你要使用
.Select,它是highly recommended to avoid doing,它只是.Select,而不是.Select()。 -
@Zaggler - 我尝试了你的建议。我不再收到错误消息,但生成的电子表格没有任何高度为 11.4 的行,并且列也没有自动调整。还有其他建议吗?
-
@BruceWayne - 当我尝试将 .Select() 更改为 .Select 时,Visual Studio 会自动将 () 放到属性上。我是在 Visual Basic 应用程序中执行此操作的,也许这是 excel vba 中的格式?
-
@Zaggler - 我从您的建议中删除了 ("1:1") 并且有效!我现在使用的命令是 oSheet.Rows.RowHeight = 11.4 没有 .select 命令。
标签: excel vb.net office-automation