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

求助:编写VBA实现Excel跨表提取账户净销售额并填充指定单元格

VBA代码提取SRSS报告中的账户净销售额

前提说明

  • 假设存放SRSS报告数据的工作表名为Sheet2(可根据实际文件名修改)
  • 需确保SRSS报告数据里,account1/account2/account3的名称与对应净销售额存在明确行对应关系(以下代码默认账户名在A列,净销售额在同行情的B列,可按需调整)

VBA代码实现

Sub ExtractNetSales()
    Dim srcSheet As Worksheet
    Dim targetSheet As Worksheet
    Dim lastRow As Long
    Dim i As Long
    
    ' 指定源数据工作表和目标输出工作表
    Set srcSheet = ThisWorkbook.Worksheets("Sheet2")
    Set targetSheet = ThisWorkbook.Worksheets("Sheet1")
    
    ' 获取源表最后一行数据行号
    lastRow = srcSheet.Cells(srcSheet.Rows.Count, "A").End(xlUp).Row
    
    ' 遍历源表数据,匹配账户并提取净销售额
    For i = 1 To lastRow
        Select Case Trim(srcSheet.Cells(i, "A").Value)
            Case "account1"
                targetSheet.Range("A1").Value = srcSheet.Cells(i, "B").Value
            Case "account2"
                targetSheet.Range("B1").Value = srcSheet.Cells(i, "B").Value
            Case "account3"
                targetSheet.Range("C1").Value = srcSheet.Cells(i, "B").Value
        End Select
    Next i
    
    MsgBox "净销售额提取完成", vbInformation
End Sub

代码调整指南

  • 若账户名称不在A列:修改srcSheet.Cells(i, "A")中的列标识(例如用"C"代表第3列)
  • 若净销售额不在账户名右侧相邻列:修改srcSheet.Cells(i, "B")中的列标识
  • 若源工作表名不是Sheet2:替换ThisWorkbook.Worksheets("Sheet2")中的工作表名称

使用步骤

  1. 打开目标Excel文件,确保Sheet1和SRSS数据工作表已存在
  2. 按下Alt + F11打开VBA编辑器
  3. 右键点击项目窗口中的工作簿名称 → 插入 → 模块
  4. 将上述代码粘贴到新建模块中
  5. 根据实际数据结构调整代码参数
  6. 点击编辑器运行按钮,或回到Excel按Alt + F8选择ExtractNetSales执行

内容的提问来源于stack exchange,提问作者Scott Bellefeuille

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:50:23