2016-11-15 5 views
0

Сначала пройдитесь по программированию на VB.net и наткнулся на небольшую проблему. Я пытаюсь найти способ иметь оператор If, независимо от того, выполняется ли цикл for или нет, прежде чем проходить через другую итерацию.Условие для продолжения цикла

Код:

For Each theTable In tableDoc.Tables 
     testString = "" 
     For row = 1 To theTable.Rows.Count 
      isHeaderOrNot = theTable.Cell(row, 1).Range.Text 'Gets value in first column 
      If isHeaderOrNot is Not Like "Section" or "Field" then Continue For 'if the words "Section" or "Field" are NOT included in isHeaderOrNot then continue with For loop 
      keyText = theTable.Cell(row, 2).Range.Text 
      valueText = theTable.Cell(row, 3).Range.Text 
      Console.WriteLine("KEY: {0}", keyText) 
      Console.WriteLine("VALUE: {0}", valueText) 
      Console.WriteLine("") 
     Next 
    Next 

Я получаю сообщение об ошибке на Like говоря, есть выражение ожидается ..

В принципе, если первый столбец в строке для цикла в содержит раздел или поля ввода хотите, чтобы он перешел к следующей строке. Первый раз, пытаясь объяснить вопрос, связанный с этим, так что любые вопросы просто спрашивают! Я действительно ценю ваше время!

+1

Вам нужно: 'Если isHeaderOrNot Не нравится "Раздел" и isHeaderOrNot Не нравится "Поле"' (обратите внимание на '' and' не or' к исключить оба) - также может использовать '<>', а не 'like', поскольку у вас нет подстановочных знаков. –

+0

Хорошее предложение и спасибо за ваше время !, но я все еще получаю сообщение об ошибке «Первый» в вашем коде. @AlexK. – Bob

+1

Что это за штука? Excel? 'theTable.Cell (строка, 1)' datatables не имеют ячейки – Plutonix

ответ

1

Вы можете просто включить весь блок в if, и если это не так, и вы хотите закончить цикл, вы можете использовать Exit For.

For Each theTable In tableDoc.Tables 
    testString = "" 
    For row = 1 To theTable.Rows.Count 
     isHeaderOrNot = theTable.Cell(row, 1).Range.Text 

     'If cell doesn't contain Section or Field, then do the following 
     If Not isHeaderOrNot.contains("Section") AndAlso Not isHeaderOrNot.contains("Field") 
      keyText = theTable.Cell(row, 2).Range.Text 
      valueText = theTable.Cell(row, 3).Range.Text 
      Console.WriteLine("KEY: {0}", keyText) 
      Console.WriteLine("VALUE: {0}", valueText) 
      Console.WriteLine("") 
     Else 

      'If it DOES include Section or Field, then stop looping 
      Exit For 
     End If 
    Next 
Next 
1

Правильный синтаксис должен быть

If Not isHeaderOrNot Like "Section" AndAlso 
    Not isHeaderOrNot Like "Field" Then 
    Exit For