2016-08-11 4 views
0

Привет всем, Я ищу, чтобы посмотреть, как двигаться, перемещая 1 строку, где я сейчас в моей таблице.Vb.net Excel переместиться в следующую строку

Я попытался:

Dim xlsApp As Excel.Application 
Dim xlsWB As Excel.Workbook 
Dim xlsSheet As Excel.Worksheet 
Dim xlsCell As Excel.Range 

xlsCell = xlsSheet.Range("A1", "A100") 

For Each oRowRange As Excel.Range In xlsCell.Rows 
    For Each oCellRange As Excel.Range In oRowRange.Columns 

     If colorRGB = "252, 213, 180" Then 
     Debug.WriteLine(oCellRange.Text) 
     oCellRange.Offset(0, 1).Select() 
     Debug.WriteLine(oCellRange.Text) 
     etc... 
     End If 
    Next 
Next 

В приведенном выше примере, он держит положить тот же текст:

ЛПП

ЛПП

Когда это действительно должно быть :

ЛПП

JON

Таким образом, любая помощь будет здорово!

ответ

2

Я думаю, что ваша проблема в том, что вы используете одну и ту же строку дважды Debug.WriteLine(oCellRange.Text). После первого, oCellRange не изменяется. Вы используете .Select, вроде. Вы делаете .Select, но тогда никогда не используйте Selection ... это good thing. Тем не менее, просто настроить эту вторую строку и удалить .Select строки:

 Debug.WriteLine(oCellRange.Text) 
    Debug.WriteLine(oCellRange.Offset(0, 1).Text) 

Edit: В качестве альтернативы, вы можете заменить .Select линию Set oCellRange = oCellRange.Offset(0,1) и оставить эту третью строку, как есть. Однако я не предлагаю этого и лично сохраню метод .Offset().

+0

Это получилось. Спасибо, Брюс! – StealthRT

+0

@StealthRT - Конечно, вы можете альтернативно сбросить «oCell» после этой первой строки и сделать то, что я показал в своем редактировании. – BruceWayne