用列名填充组合框

时间:2015-05-11 09:46:41

标签: vb.net excel

我在vb.net上有一个带有Excel文件的应用程序

首先,我有一个“浏览”按钮,用于打开Excel工作簿。

其次,我有一个按钮“获取工作表的名称”,它给我一个组合框中的工作表名称,然后我选择工作表。 然后我有另一个按钮“获取列名称”,它给出了combobox2中表格列的名称。 当我选择列的名称时,新的工作表添加名为列的名称,并且具有此列的数据

我想要的是:

当我从combobox1中选择另一张纸时,将使用新纸张的新列名称刷新combobox2

           Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

    Chargement_de_données.xlWorkSheet = CType(Chargement_de_données.xlWorkBook.Sheets(Chargement_de_données.ComboBox1.Text), Excel.Worksheet)
    Chargement_de_données.xlWorkSheet.Activate()
    Chargement_de_données.xlApp.Visible = True

    Dim key As String = CStr(DirectCast(ComboBox2.SelectedItem, KeyValuePair(Of Integer, String)).Key)
    Dim value As String = DirectCast(ComboBox2.SelectedItem, KeyValuePair(Of Integer, String)).Value

    DataGridView1.Visible = True

    Dim DoesSheetExists As Boolean = False

    For Each xs In Chargement_de_données.xlApp.Sheets
        If xs.Name = value Then
            DoesSheetExists = True
        End If
    Next
    If DoesSheetExists = True Then
        MsgBox("L'indicateur est déja ouvert ", CType(MessageBoxIcon.Error, MsgBoxStyle))
    Else
        With Chargement_de_données.xlWorkSheet

            Dim lastrow As Integer = Chargement_de_données.xlWorkSheet.Cells.Rows.End(XlDirection.xlDown).Row
            Dim colletter As String = ColumnIndexToColumnLetter(CInt(key))

            exWS2 = DirectCast(Chargement_de_données.xlWorkBook.Sheets.Add, Microsoft.Office.Interop.Excel.Worksheet)
            exWS2.Name = value

            Chargement_de_données.xlWorkSheet.Range("C1:C" & lastrow.ToString).Copy(exWS2.Range("A1"))

            Chargement_de_données.xlWorkSheet.Range(colletter & "1:" & colletter & lastrow.ToString).Copy(exWS2.Range("B1"))

1 个答案:

答案 0 :(得分:0)

如果我说你的工作表中每个工作表都包含表格第一行中列的名称并且你希望在从组合框中选择工作表后检索这些列的名称,我能理解吗?