【问题标题】:fill the combobox with the column names用列名填充组合框
【发布时间】:2015-05-11 09:46:41
【问题描述】:

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

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

其次,我有一个按钮“获取工作表的名称”,它在组合框中为我提供工作表的名称1,然后我选择工作表。 然后我有另一个按钮“获取列名”,它为我提供了组合框2 中表的列名。 当我选择列名时,会添加一个名为列名的新工作表,其中包含该列的数据

我想要的是:

当我从 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"))

【问题讨论】:

    标签: vb.net excel


    【解决方案1】:

    如果我说您的每个工作表都包含具有工作表第一行中列名称的表,并且您希望在从组合框中选择工作表后检索这些列的名称,我是否理解正确?

    【讨论】:

    • 这就是我想要的,你能帮我写一个代码吗?请
    • 这样的事情可能对你有用: Public Sub FillColumnCombobox(sheetname As String) Dim currentcell As Range ColumnComboBox.Clear For Each currentcell In Worksheets(sheetname).UsedRange.Rows(1).Cells If currentcell .Value "" Then ColumnComboBox.AddItem currentcell.Value End If Next End Sub
    • 我将在哪里添加此代码到按钮代码或组合框代码对我有用?
    • 将 sub 添加到表单后面的代码中。在包含工作表名称的组合框的 selectedindexchanged 事件中调用 sub。使用此组合框的值作为参数 sheetname。
    • 您能否为我解释更多,并告诉我如何打电话给潜艇,因为我不知道?对不起
    猜你喜欢
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 2011-11-20
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    相关资源
    最近更新 更多