我正在尝试在特定情况下动态地将 2 个单元格连接在一起,但我无法触发任何公式更改。如果 A 列显示“是”,并且 B 列中相应的事件名称以年份和字母“C”开头,我想将相应的日期、空格和事件名称连接到 D 列中。 “2022年2月22日2022 C00EB24HNA”
在所附的屏幕截图中,我突出显示了应连接的行。
这是我正在使用的 For Each 循环。我在第二个 if 语句中一直遇到问题,“If "left(RC[1...."
Dim Response As Range
For Each Response In Selection
If Response = "Yes" Then
If "left(RC[1], 6)" = "2020 C" Or _
"left(RC[1], 6)" = "2021 C" Or _
"left(RC[1], 6)" = "2022 C" Or _
"left(RC[1], 6)" = "2023 C" Or _
"left(RC[1], 6)" = "2024 C" Or _
"left(RC[1], 6)" = "2025 C" Then
ActiveCell.Offset(0, 3).Select
ActiveCell.FormulaR1C1 = _
"=(CONCAT(RC[-1],"" "",RC[-2]))"
ActiveCell.Offset(-1, -3).Select
Else
End If
Else
ActiveCell.Offset(1, 0).Select
End If
Next Response
我的语法可能有问题,但我不知道如何修复它。任何指导将不胜感激!谢谢!
"left(RC[1], 6)"
是vba的一个字符串,vba正在尝试比较两个字符串而不是结果。
并删除所有具有 .Select 的行和整个 Else 块,这些都不需要。
Dim Response As Range
For Each Response In Selection
If Response = "Yes" Then
If cLng(Left(Response.Offset(,2),4)) >= 2020 _
And cLng(Left(Response.Offset(,2),4)) <= 2025 _
And Mid(Response.Offset(,2),6,1) = "C" Then
Response.Offset(, 3).FormulaR1C1 = _
"=(CONCAT(RC[-1],"" "",RC[-2]))"
End If
End If
Next Response