VB.NET Excel удаляет несколько столбцов одновременно - PullRequest
0 голосов
/ 25 февраля 2011

Я пытаюсь удалить более одного столбца в своем листе 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.Столбцы (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

Ответы [ 3 ]

1 голос
/ 25 февраля 2011

Вы хотите

xlSheet.Range(arrayLetters)

Я считаю, что это Range, а не Column.

1 голос
/ 25 февраля 2011

Просто удалите столбец с наименьшим номером N несколько раз, чтобы отразить, сколько столбцов в строке вы хотите удалить. При работе с Excel лучше избегать номеров столбцов, а не букв. Если вам нужен пример кода, дайте мне знать, и я опубликую его.

Edit:

Вот пример кода, который делает то, что вы хотите:

xlSheet.Columns(i).delete
0 голосов
/ 27 октября 2015

Я думаю, что важная часть, которую нужно осознать (чего я изначально не знал), это то, что вы должны использовать числа для столбцов, а не букв.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...