簡體   English   中英

VB.NET excel同時刪除多個列

[英]VB.NET excel deleting multiple columns at the same time

我正在嘗試刪除Excel工作表中的多個列。

    For Each lvi In ListView1.Items
        If lvi.Checked = True Then
            arrayLetters = lvi.SubItems(1).Text & ":" & lvi.SubItems(1).Text & "," & arrayLetters
        End If
    Next

    arrayLetters = arrayLetters.Substring(0, arrayLetters.Length - 1)

    Dim rg As Excel.Range = xlSheet.Columns(arrayLetters)
    rg.Select()
    rg.Delete()

arrayLetters的值是“G:G,F:F” 出於某種原因,一旦它到達那里就不會有效刪除它們! 我這樣做的唯一原因是它不會更新表並循環到另一個表。 換句話說,如果我單獨刪除每一個,那么列移動,下一個周圍的字母將不一樣。

錯誤發生在Dim rg As Excel.Range = xlSheet.Columns(arrayLetters)行,它說:

類型不匹配。 (HRESULT異常:0x80020005(DISP_E_TYPEMISMATCH))

任何幫助都會很棒!

大衛

解決了

 For Each lvi In ListView1.Items
    If lvi.Checked = False Then
        arrayLetters = lvi.SubItems(2).Text & "," & arrayLetters 'Puts numbers in BACKWORDS
    End If
 Next

 arrayLetters = arrayLetters.Substring(0, arrayLetters.Length - 1)

 Dim theNumbers As String() = arrayLetters.Split(",")
 Dim num As Integer = 0

 xlApp.ScreenUpdating = False

 For Each num In theNumbers
     xlSheet.Columns(num).delete() 'Deletes columns in reverse order (7,5,4...)
 Next

只需刪除編號最小的列N次,即可反映要刪除的行中的列數。 以編程方式處理Excel時,最好不要使用列號而不是字母。 如果您需要一個代碼示例,請告訴我,我會發布一個。

編輯:

這是一個代碼示例,它可以滿足您的需求:

xlSheet.Columns(i).delete

你要

xlSheet.Range(arrayLetters)

我估計,那是Range,而不是Column。

我認為實現的重要部分(我最初沒有)是你必須使用數字作為列而不是字母。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM