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

请求编写VBA代码将客户名与账单号批量填充至M、N列

Excel批量填充客户名称与账单编号至明细行的VBA解决方案

问题说明

  • 输入数据示例:输入数据示例
  • 期望输出效果:期望输出效果

现有Excel数据中,客户名称与账单编号位于明细行上方(如第3行客户名“5145”、账单号“Shrin”,下方两行是其账单明细),需将对应客户名和账单号批量填充至M列和N列,便于后续数据分析。

VBA代码实现

Sub FillCustomerInvoice()
    Dim targetSheet As Worksheet
    Dim lastDataRow As Long
    Dim custName As String
    Dim invoiceNo As String
    Dim rowIndex As Long
    
    ' 指定目标工作表,根据实际情况修改表名
    Set targetSheet = ThisWorkbook.Worksheets("Sheet1")
    lastDataRow = targetSheet.Cells(targetSheet.Rows.Count, "A").End(xlUp).Row
    
    ' 遍历所有数据行
    For rowIndex = 1 To lastDataRow
        ' 判断当前行是否为客户/账单号行(依据:当前行A列有值,下一行A列也有值)
        If targetSheet.Cells(rowIndex, "A").Value <> "" And targetSheet.Cells(rowIndex + 1, "A").Value <> "" Then
            ' 记录当前客户名和账单号
            custName = targetSheet.Cells(rowIndex, "A").Value
            invoiceNo = targetSheet.Cells(rowIndex, "B").Value
        ' 明细行A列为空,填充对应信息
        ElseIf targetSheet.Cells(rowIndex, "A").Value = "" Then
            targetSheet.Cells(rowIndex, "M").Value = custName
            targetSheet.Cells(rowIndex, "N").Value = invoiceNo
        End If
    Next rowIndex
End Sub

使用步骤

  1. 打开目标Excel文件,按下Alt + F11打开VBA编辑器
  2. 右键点击左侧工程窗口中的目标工作簿,选择「插入」→「模块」
  3. 将上述代码粘贴到新模块中,修改代码里的Sheet1为你的实际工作表名称
  4. 按下F5运行宏,或回到Excel界面通过「开发工具」→「宏」选择FillCustomerInvoice执行

注意事项

  • 代码默认客户名在A列、账单号在B列,填充目标为M列(客户名)和N列(账单号),若你的列位置不同,可修改代码中的列标识(如"A"、"B"、"M"、"N")
  • 若明细行数量不固定,只要客户/账单号行的下一行是明细行,代码即可自动识别并填充

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 05:06:28