2015-01-03 4 views
0

У меня есть программа, которая должна итерации через очень большой диапазон excel, чтобы объединить два диапазона в одно значение поля со списком. У меня есть следующий код, чтобы сделать это, но все, что он делает, перебирает первое значение пять раз. Если я удалю первый цикл FOR, то он просто возвращает только первое значение и никогда не завершается. Любые предложения о том, что я могу сделать, чтобы отполировать этот код и заставить его работать?Loop через Excel Диапазоны Filling Combobox VB.Net

 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 
+0

Вы помещаете ComboBox1.Items.Add .... в неправильном месте. Это добавит только последнее значение f – agentpx

+0

Куда это добавить? Я пробовал множество мест для подобных результатов. –

ответ

1

Попробуйте это, просто измените x на 1, если VBA 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 
+0

Странно, если я так делаю, он просто зависает и никогда не завершается. Я попытался уменьшить размер диапазона, который он выполняет, чтобы исключить это как причину, но это, похоже, не имеет значения. Редактировать: Размер диапазона - вот что вызывает его. –

+0

Ну, вам нужно уточнить свой вопрос, как предоставление данных, которые вы зацикливаете, и ожидаемый результат – agentpx

+0

Хорошо, вот что происходит сейчас. В основном, я держу первые и фамилии, объединяя их в один и добавляя их в поле со списком. Размер диапазона, по-видимому, является причиной замораживания. Устраняя, что на данный момент, что происходит с вашим предлагаемым кодом, у каждого есть такая же фамилия. Таким образом, значение A обновляется и циклически выполняется, но не значение B. –

Смежные вопросы