如何编写Excel VBA宏:根据A列产品代码修改B列门店名称
实现Excel门店名称区分的VBA宏
核心需求实现代码
下面的VBA宏会遍历A列的产品代码,当代码为10004、10005、10006时,自动修改对应行B列的门店名称(示例中改为「门店1(专属类)」,你可根据需求调整):
Sub RenameStores() Dim ws As Worksheet Dim lastRow As Long Dim i As Long Dim targetCodes As Variant ' 指定目标工作表(默认用当前活动表,需固定表的话替换成ThisWorkbook.Sheets("你的表名")) Set ws = ActiveSheet ' 获取A列数据的最后一行行号 lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' 定义需要匹配的产品代码集合 targetCodes = Array("10004", "10005", "10006") ' 若A列是数值型代码,去掉引号即可 ' 从第2行开始遍历(假设第1行是表头,无表头则改为i=1) For i = 2 To lastRow ' 检查当前行产品代码是否在目标集合中 If IsInArray(ws.Cells(i, "A").Value, targetCodes) Then ' 修改对应B列的门店名称,按需替换右侧文本 ws.Cells(i, "B").Value = "门店1(专属类)" End If Next i MsgBox "门店名称修改完成!" End Sub ' 辅助函数:判断值是否存在于指定数组中 Function IsInArray(searchValue As Variant, arr As Variant) As Boolean Dim element As Variant For Each element In arr If element = searchValue Then IsInArray = True Exit Function End If Next element IsInArray = False End Function
代码细节说明
- 工作表适配:如果你的数据不在当前活动表,把
ActiveSheet替换成具体表名,比如ThisWorkbook.Sheets("销售数据")。 - 代码类型适配:若A列的产品代码是数值格式,把
targetCodes数组里的引号去掉,改成Array(10004, 10005, 10006)。 - 门店自定义名称:直接修改代码中
"门店1(专属类)"的内容,换成你需要的区分标识,比如「门店1(美妆区)」「门店1(食品专区)」等。
操作步骤
- 打开目标Excel文件,按下
Alt + F11启动VBA编辑器。 - 右键点击左侧工作簿名称,选择「插入」→「模块」。
- 将上述代码粘贴到模块编辑窗口。
- 按下
F5运行宏,或者回到Excel界面,通过「开发工具」→「宏」选择RenameStores执行。
内容的提问来源于stack exchange,提问作者Miguel Angel Quintana
相关产品推荐
相关产品推荐

