分享

如何使用 VBA 在 Excel 表格中搜索并标记数据

 知识情报院 2022-02-21

一家香料店开展了打折活动,以促进新店的开业。为此,一些产品以 1.00 美元(1 美元)的价格出售,以吸引更多的客户。你需要在工作表中找到售价为 1 美元的商品。一旦找到商品,这些商品中每个商品的名称和售价单元格的背景颜色都会变为绿色。此外,你需要在这些商品旁边(在C列中)写上特价


分析:

  • 获取工作表的行数
  • 从表头往下 1 行开始;循环价格所在的列
  • 如果价格等于 1 ,则向左偏移 1 单元格,将产品名称单元格和价格单元格标记为绿色
  • 同时向右偏移 1 单元格,填上 "特价"
  • 继续循环直到最后的商品

答案:

  • 首先声明变量,并在工作表中找到最后一行
Dim LastRow As Long
Dim CellVal As Long
Dim i As Integer

LastRow = Cells(Rows.Count, 2).End(xlUp).Row
  • 使用 for 循环,从第 3 行开始,循环到末尾
  • 使用 if 判断单元格值,是否等于 1;如果等于 1,就往右偏移 1 列,将该单元格赋值为:特价
  • 同时使用 Resize 扩展函数,从产品名称向右扩展 2 列,即包括产品名称和价格,将其背景色填充为绿色:RGB(140, 198, 63)
For i = 3 To LastRow
CellVal = Cells(i, 2).Value
If CellVal = 1 Then
Cells(i, 2).Offset(, 1).Value = "特价"
Cells(i, 1).Resize(, 2).Interior.Color = RGB(140, 198, 63)
End If
Next i

然后插入表单控件-按钮;右键编辑名称、指定宏;最后点击运行即可

  • 完整代码示例:
Sub Solution()

Dim LastRow As Long
Dim CellVal As Long
Dim i As Integer

LastRow = Cells(Rows.Count, 2).End(xlUp).Row

For i = 3 To LastRow
CellVal = Cells(i, 2).Value
If CellVal = 1 Then
Cells(i, 2).Offset(, 1).Value = "特价"
Cells(i, 1).Resize(, 2).Interior.Color = RGB(140, 198, 63)
End If
Next i

End Sub

今天的教程,主要学习了:如何使用 VBA 来循环判断单元格值,并对单元格值进行赋值操作,同时改变单元格背景颜色;大家都学会了吗?

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多