我在电子表格中有两列,列(A)和列(B) .
列(A)包含从查询中提取的名称(例如Brian,Bob,Bill等),列(B)包含三种状态之一(已分配,正在进行或待定) .
但是,此查询有时会为没有名称的状态提取显示“已分配”的某些行项目,因此表示列(A)中名称的相应单元格为空 . 所以我用“未知”手动填写那些空单元格 .
我想要做的是创建一个宏,找到列(A)中的每个空单元格,如果右边的单元格包含单词“Assinged”,则填写单词“Unknown” .
So the conditions are:
-
列(A)中的空白单元格
-
右侧的Correspoding单元格(B列)包含“assinged”一词
This is my Code:
Private Sub CommandButton2_Click()
For Each cell In Columns("A")
If ActiveCell.Value = Empty And ActiveCell.Offset(0, 1).Value = "Assigned" Then ActiveCell.Value = "Unknown"
Next cell
End Sub
3 回答
欢迎来到SO .
试试这个代码 . 它会更快一点,应该得到你想要的 .
Update :使代码更加防弹!
没有必要在这里循环,利用excels内置的方法,将更快地执行 .
如果你只需要这样做几次就可以了
将您使用的范围格式化为表格
在A列过滤器上仅显示"(Blanks)"
列B上的
过滤器仅显示"assinged"
选择B列中的所有结果单元格
按alt:仅选择可见单元格
按F2
类型"unknown"
按ctrl进入
你的坏数据现在应该是好的!
显然这是一个非基于vba的解决方案,但如果你可以避免编码,它可能是最好的 .