使用 vb.net 在 excel 中添加新列

Using vb.net to add new column in excel

我希望有人能给我一些帮助好吗?我的 excel 工作表包含多个列,我希望做的只是在末尾添加另一列。因此,如果我的工作表包含 20 列数据,我希望将 header 添加到 U1 列,下次如果我的工作表包含 22 列数据,我希望将 header 添加到 V1 等等

现在我已经设法获取下一列字母,但是当我尝试将文本传递到 header 行时,出现错误 Object reference not set to an instance of an object 在下一行

.Range(ColumnIndexToColumnLetter(lColumn + 1) & 1).Value = "TESTT"

非常感谢任何帮助,非常感谢

    Dim xls As New Excel.Application
    Dim xWorkbook As Excel.Workbook
    Dim xWorksheet As Excel.Worksheet
    Dim lColumn As Long = 0

    xWorkbook = xls.Workbooks.Open("D:\Test.xlsx") 'File Location
    xWorksheet = xWorkbook.Sheets(1)
    xls.Visible = True

    With xWorksheet
        If xls.WorksheetFunction.CountA(.Columns) <> 0 Then
            lColumn = .Columns.Find(What:="*", _
                          After:=.Range("A1"), _
                          LookAt:=Excel.XlLookAt.xlPart, _
                          LookIn:=Excel.XlFindLookIn.xlFormulas, _
                          SearchOrder:=Excel.XlSearchOrder.xlByColumns, _
                          SearchDirection:=Excel.XlSearchDirection.xlPrevious, _
                          MatchCase:=False).Column
        Else
            lColumn = 1
        End If
    End With

    With xWorksheet
              .Range(ColumnIndexToColumnLetter(lColumn + 1) & 1).Value = "TESTT"
    End With

Private Function ColumnIndexToColumnLetter(colIndex As Integer) As String
    Dim div As Integer = colIndex
    Dim colLetter As String = String.Empty
    Dim modnum As Integer = 0

    While div > 0
        modnum = (div - 1) Mod 26
        colLetter = Chr(65 + modnum) & colLetter
        div = CInt((div - modnum) \ 26)
    End While

    Return colLetter
End Function

如果您使用 option strict on 则必须使用 cint 进行转换,通过此更改您的代码运行良好

With xWorksheet
  .Range(ColumnIndexToColumnLetter(CInt(lColumn + 1)) & 1).Value = "TESTT"
End With