我有一个包含两个工作表的文件 . 我需要运行一个宏,它在sheet2上向下看A列,直到它为空 . 它需要在sheet1上的sheet2列A中查找单元格中的值 . 如果找到,则更改列AP的值 . 如果未找到,则跳到下一个搜索下一个值 .
这就是我到目前为止所拥有的 . 我已经能够将它修复到我不再出错的地方,但它也没有结果 . 它显示并且似乎在运行,但在sheet1上没有对单元格(“AP”,“行值找到”)进行任何更改 .
Sub dataChange()
Dim myRow As Integer
Dim srch As Integer
On Error GoTo Err_Execute
myRow = 1
srch = 1
While Sheet2.Cells(myRow, 1).Value <> ""
If Sheet1.Range("A" & CStr(srch)).Value = Sheet2.Cells(myRow, 1).Value Then
Sheet1.Range("AP" & CStr(srch)).Value = "HOUSTON"
End If
srch = srch + 1
myRow = myRow + 1
Wend
Err_Execute:
MsgBox "An error occurred."
End Sub
1 回答
您的代码将
A1
从Sheet1
与Sheet2
中的A1
进行比较 . 我想你想将Sheet1
中的A1
与Sheet2
中的所有ColumnA
进行比较 . 因此,您需要一个外部循环 .以下是您的代码,经过修改即可实现此目的 . 它还包含Leviathan的注释,将
Integer
更改为Long
,并将Exit Sub插入适当的位置 .当Sheet2看起来像这样......
我在Sheet1上得到了这个结果......
代码 ...