【问题标题】:Loop through Excel Ranges Filling Combobox VB.Net循环通过 Excel 范围填充组合框 VB.Net
【发布时间】:2015-03-01 07:52:24
【问题描述】:

我有一个程序需要遍历一个非常大的 Excel 范围,将两个范围组合成一个组合框值。我有以下代码可以这样做,但它所做的只是将第一个值迭代五次。如果我删除第一个 FOR 循环,那么它只会返回第一个值并且永远不会完成。关于我可以做些什么来完善此代码并使其正常工作的任何建议?

        Dim i As Integer
    If TenantBox.SelectedItem = "CNS" Then
        WFMBook.Workbooks.Open("C:\Schedule.xlsx")
        For i = 0 To 5 Step +1
            For Each CNSCell In WFMBook.Range("A3:A1441").Cells
                f = CNSCell.Value.ToString
            Next
            For Each tst In WFMBook.Range("B3:B1441").Cells
                l = tst.Value.ToString
            Next
            ComboBox1.Items.Add(f + " " + l)
            If (i = 5) Then
                Exit For
            End If
            Console.WriteLine(i)
        Next
    End If

【问题讨论】:

  • 您将 ComboBox1.Items.Add.... 放在了错误的位置。这只会添加最后一个 f 值
  • 在哪里添加它?我已经尝试了很多地方来获得类似的结果。

标签: vb.net excel loops combobox iteration


【解决方案1】:

试试这个,如果 VBA 基于 1,只需将 x 更改为 1。

If TenantBox.SelectedItem = "CNS" Then
        WFMBook.Workbooks.Open("C:\XHSchedule.xlsx")
            Dim colCount = WFMBook.Range("A3:A8").Cells.Count
        For x = 1 To colCount Step +1
            For Each CNSCell In WFMBook.Range("A3:A8").Cells
                f = WFMBook.Range("A3:A8").Cells(x).Value.ToString
                l = WFMBook.Range("B3:B8").Cells(x).Value.ToString
            Next
            ComboBox1.Items.Add(f + " " + l)
        Next
                End If

【讨论】:

  • 奇怪的是,如果我这样做,它只会冻结并且永远不会完成。我已经尝试降低它迭代的范围的大小以消除它作为一个原因,但这似乎并不重要。编辑:范围的大小是导致它的原因。
  • 嗯,你需要改进你的问题,更像是提供你循环进入的数据和一些预期的输出
  • 好的,这就是现在发生的事情。基本上,我会提取名字和姓氏,将它们组合成一个,然后将它们添加到组合框中。范围大小似乎是导致冻结的原因。暂时消除这一点,您建议的代码会发生什么是每个人都有相同的姓氏。因此,A 值正在正确更新和循环,但 B 值没有。
  • 我有一个建议。 Excel 提供了一个命名范围只需在互联网上搜索它,在这里您可以使用一个范围名称命名 firstname + lastname 列名。这样,您只能将其作为一个范围引用,例如 WFMBook.Range("Fullname") 而不是 WFMBook.Range("'A3:A1441')
  • 这是给你的命名范围链接spreadsheets.about.com/od/excelformulas/ss/…
猜你喜欢
  • 1970-01-01
  • 2016-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多