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

如何在Excel中用同行最后一列的值替换指定区域的D+数字值?

实现工作表中D+数字替换为所在行最后一列值的方法

Excel 解决方案(VBA宏)

普通查找替换无法动态引用行内其他单元格内容,用VBA可实现逐单元格判断替换:

  1. 按 Alt+F11 打开VBA编辑器
  2. 点击「插入」→「模块」,粘贴以下代码:
Sub ReplaceDWithLastColumnValue()
    Dim rng As Range, cell As Range
    Dim lastCol As Integer, targetRow As Integer
    Set rng = Application.InputBox("请选择要处理的单元格区域", Type:=8)
    For Each cell In rng
        If cell.Value Like "D#*" Then
            targetRow = cell.Row
            lastCol = Cells(targetRow, Columns.Count).End(xlToLeft).Column
            cell.Value = Cells(targetRow, lastCol).Value
        End If
    Next cell
End Sub
  1. 运行宏,按提示选择需要处理的区域,完成替换

Google Sheets 解决方案(Apps Script)

  1. 打开目标工作表,点击「扩展程序」→「Apps 脚本」
  2. 清空默认代码,粘贴以下脚本:
function replaceDWithLastColumnValue() {
    const sheet = SpreadsheetApp.getActiveSheet();
    const range = sheet.getActiveRange();
    const values = range.getValues();
    const startRow = range.getRowIndex();
    
    for (let i = 0; i < values.length; i++) {
        for (let j = 0; j < values[i].length; j++) {
            const cellVal = values[i][j];
            if (/^D\d+$/.test(cellVal)) {
                const targetRow = startRow + i;
                const lastColVal = sheet.getRange(targetRow, sheet.getLastColumn()).getValue();
                range.getCell(i+1, j+1).setValue(lastColVal);
            }
        }
    }
}
  1. 保存脚本,点击运行按钮,完成授权后即可替换选中区域内的目标内容

补充说明

普通查找替换仅支持静态值替换,无法关联当前行的最后一列动态内容,因此必须通过脚本/VBA实现逐行判断和值引用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 13:03:17