Visual Basic - 如何在 Excel 和其他格式设置选项中居中列

Visual Basic - How to Center a Column in Excel and other Formatting Options

如何使用 Visual Basic (Visual Studio 2015) 在 Excel 中使列居中?我正在使用 Microsoft.Office.Interop.Excel

这是我用来执行此操作但无法执行的代码段:

Excel3 = CreateObject(“Excel.Application”) 
Excel3.WorkBooks.Add() 

Sheet3 = Excel3.ActiveSheet

Sheet3.Columns("A:A").Select
    With Sheet3.Selection
        .HorizontalAlignment = Sheet3.Columns("A:A").xlCenter
        .VerticalAlignment = Sheet3.Columns("A:A").xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = Sheet3.Columns("A:A").xlContext
        .MergeCells = False
    End With

我正在使用 Visual Basic(Visual Studio 2015)。错误消息指出:

“未处理的异常:System.MissingMemberException:未找到类型 'Worksheet' 的 Public 成员 'Selection' 在 Microsoft.VisualBasic.CompilerService.LateBindign.LateGet(Object o, Type objType, String name, Object[] args, String[] paramames, Boolean[] CopyBack) 在 Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(对象实例、类型类型、字符串成员名称、对象[] 参数、字符串[] 参数名称、类型[] 类型参数、布尔值[] CopyBack)

另一个变体给我错误:未找到类型范围的选择。

Sheet3.Columns("A").Select
    With Sheet3.Columns.Selection
        .HorizontalAlignment = Sheet3.Columns("A").xlCenter
        .VerticalAlignment = Sheet3.Columns("A").xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = Sheet3.Columns("A").xlContext
        .MergeCells = False
    End With

我在阅读 后找到了这个问题的解决方案。这是我采取的步骤。

更改自: 进口 Microsoft.Office.Interop.Excel

致: 进口 Excel = Microsoft.Office.Interop.Excel

以上更改允许我访问具有我可以使用的 xlCenter 的 Constants 对象。

然后相关代码改为:

Sheet3.Columns("A:S").EntireColumn.AutoFit
Sheet3.Range("A:S").VerticalAlignment = Excel.Constants.xlCenter
Sheet3.Range("A:S").WrapText = True
Sheet3.Range("A:A").HorizontalAlignment = Excel.Constants.xlCenter