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

如何修改VBA代码实现拼接另一工作簿两个单元格的值

你代码的核心错误是 VBA中为单元格赋值公式时,参数分隔符需使用英文逗号(,)而非分号(;),分号是部分本地化区域设置下的界面显示分隔符,不适用于VBA直接赋值公式的场景。

正确写法示例

方案1:修正后的CONCATENATE版本

OpenedWb.Worksheets(DestinationSheet).Range("E23:I23").FormulaR1C1 = _
"=CONCATENATE([" & mainFilename & "]" & mainSheet & "!" & SelectedData.EntireRow.Cells(1, "U").Address(ReferenceStyle:=xlR1C1) & _
",[" & mainFilename & "]" & mainSheet & "!" & SelectedData.EntireRow.Cells(1, "V").Address(ReferenceStyle:=xlR1C1) & ")"

方案2:更简洁的&运算符拼接(推荐,写法更短效率一致)

OpenedWb.Worksheets(DestinationSheet).Range("E23:I23").FormulaR1C1 = _
"=[" & mainFilename & "]" & mainSheet & "!" & SelectedData.EntireRow.Cells(1, "U").Address(ReferenceStyle:=xlR1C1) & _
"&[" & mainFilename & "]" & mainSheet & "!" & SelectedData.EntireRow.Cells(1, "V").Address(ReferenceStyle:=xlR1C1)

额外注意项

如果你的mainFilename对应文件路径包含空格、特殊字符,需要在工作簿+工作表名称的外侧包裹单引号,避免公式识别错误,示例如下:

' 带单引号兼容特殊路径的写法
OpenedWb.Worksheets(DestinationSheet).Range("E23:I23").FormulaR1C1 = _
"='[" & mainFilename & "]" & mainSheet & "'!" & SelectedData.EntireRow.Cells(1, "U").Address(ReferenceStyle:=xlR1C1) & _
"&'[" & mainFilename & "]" & mainSheet & "'!" & SelectedData.EntireRow.Cells(1, "V").Address(ReferenceStyle:=xlR1C1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:39:04