VBA中的数据循环

VBA中的数据循环,vba,excel,Vba,Excel,我的问题数据如下所示: #define apple #define mango #define banana animals{ dog, cat, bird #define guava #define avocado 带有#define的字符串设置为color index=50, 其余设置为颜色索引=23 我想做的是,我想找到“动物”这个词,我想让它看下一栏,直到下一栏有一个#define。如果下一列没有#define,则将其编号为“0”,下一列为“1”,依此类推,因此结果如下: #defin

我的问题数据如下所示:

#define apple
#define mango
#define banana
animals{
dog,
cat,
bird
#define guava
#define avocado
带有#define的字符串设置为color index=50, 其余设置为颜色索引=23

我想做的是,我想找到“动物”这个词,我想让它看下一栏,直到下一栏有一个#define。如果下一列没有#define,则将其编号为“0”,下一列为“1”,依此类推,因此结果如下:

#define apple
#define mango
#define banana
animals{
dog, 0
cat, 1
bird 2
#define guava
#define avocado
我的代码如下,但它没有按计划移动到下一列

For Each cell In DataRange.Cells
    If InStr(cell.Value, "animals") <> 0 Then
        Do Until ActiveCell.Font.ColorIndex = 50
            cell.Value = cell.Value & o
            o = o + 1
            cell.Offset(0, 1).Select
        Loop
    End If
Next
DataRange.Cells中每个单元格的

如果InStr(cell.Value,“动物”)为0,则
直到ActiveCell.Font.ColorIndex=50为止
cell.Value=cell.Value&o
o=o+1
单元格偏移量(0,1)。选择
环
如果结束
下一个

谢谢

一般来说,代码中的错误是没有选择要循环的单元格。这可能是了解循环如何工作的一个好例子

我不想成为编写此代码的人,但请尝试:

For Each cell In DataRange.Cells
    cell.Select
    If InStr(cell.Value, "animals") <> 0 Then
        Do Until ActiveCell.Font.ColorIndex = 50
            cell.Value = cell.Value & o
            o = o + 1
            cell.Offset(0, 1).Select
        Loop
    End If
Next

通常,代码中的错误是没有选择要循环的单元格。这可能是了解循环如何工作的一个好例子

我不想成为编写此代码的人,但请尝试:

For Each cell In DataRange.Cells
    cell.Select
    If InStr(cell.Value, "animals") <> 0 Then
        Do Until ActiveCell.Font.ColorIndex = 50
            cell.Value = cell.Value & o
            o = o + 1
            cell.Offset(0, 1).Select
        Loop
    End If
Next