VBA Skippin第二次堆叠Do Loop

我是自学VBA,并想弄清楚为什么第二个循环没有得到执行,当我运行我的代码,粘贴如下:

Sub Cellhasvalue() Dim msge As String Dim ccellcount, rcellcount As Integer Dim end_count As Integer ccellcount = 0 'end_count = 5 msge = "il" rcellcount = 3 'For cellcount = 0 To endcount Do While Range("A1").Offset(rcellcount, ccellcount).Value = msge Range("A1").Offset(rcellcount, ccellcount).Select MsgBox ">> " + CStr(ccellcount) + " Has Value" ccellcount = ccellcount + 1 Loop 'Next cellcount MsgBox "FIN>> " + CStr(ccellcount) rcellcount = 0 Do While Range("A1").Offset(rcellcount, ccellcount).Value = msge Range("A1").Offset(rcellcount, ccellcount).Select MsgBox ">> " + CStr(rcellcount) + " Has Value" rcellcount = rcellcount + 1 Loop MsgBox "FIN>> " + CStr(rcellcount) End Sub 

这基本上是我正在检查的Excel表格,它从单元格A1开始

 il il il il il il il il il il il il il il il il il il il il il il il il il il il il il il il il il il il il 

因为您正在检查单元格E1的值,它是空的:

 Do While Range("A1").Offset(rcellcount, ccellcount).Value = msge 

这与你当前的variables,转换为:

 Do While Range("A1").Offset(0, 4).Value = "il" 

这是你的例子中的E1单元格,它是空的。 所以while循环,因为条件不满足,立即退出。

设置ccellcount为0可以解决你的问题。

今后,要了解代码的作用:

  • 使用F8键逐行执行代码。 然后你可以鼠标移动一个variables来查看它的当前值。
  • 您也可以使用手表(右键单击任何突出显示的元素,然后单击“添加监视”),然后在“监视”窗口中监视其值。
  • 您可以使用Locals窗口(View / Locals窗口)来显示局部variables的值。