You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写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(食品专区)」等。

操作步骤

  1. 打开目标Excel文件,按下Alt + F11启动VBA编辑器。
  2. 右键点击左侧工作簿名称,选择「插入」→「模块」。
  3. 将上述代码粘贴到模块编辑窗口。
  4. 按下F5运行宏,或者回到Excel界面,通过「开发工具」→「宏」选择RenameStores执行。

内容的提问来源于stack exchange,提问作者Miguel Angel Quintana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:15:41