我正在尝试将B和C列连接到O列。
我的代码是这个。该代码给出的是金额而不是日期。任何帮助,将不胜感激。
Sub ConcatJEcomment()
Dim LastRow As Long
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range("O2:O" & LastRow) = Evaluate(Replace("B2:B#&"" - ""&C2:C#", "#", LastRow))
'You want to pull date and Type -- in this order
'Range = where do you want this to be put
End Sub
答案 0 :(得分:0)
尝试一下:
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
答案 1 :(得分:0)
Excel公式
=TEXT(B2,"MM/DD/YYYY")&" - "&C2
工作正常。
我很惊讶最初的 VBA公式
Range("O2:O" & LastRow) = Evaluate(Replace("B2:B#&"" - ""&C2:C#", "#", LastRow))
甚至可以工作。因此,遵循其逻辑,我得出结论:
Range("O2:O" & LastRow) = Evaluate( _
Replace("TEXT(B2:B#,""MM/DD/YYYY"")&"" - ""&C2:C#", "#", LastRow))
它不起作用,似乎 TEXT 函数不喜欢数组。结果始终是第二行(数据的第一行)中的连接值。
您可以随时在范围内循环:
Sub ConcatJEcomment()
Dim LastRow As Long
Dim lngRow As Long ' Row Counter
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
For lngRow = 2 To LastRow
Range("O" & lngRow) = Range("B" & lngRow).Text _
& " - " & Range("C" & lngRow).Text
Next
End Sub
由于我的系统使用“ 。”而不是“ / ”作为日期分隔符,因此我想用斜杠显示结果:
Range("O" & lngRow) = Format(Range("B" & lngRow), "MM/DD/YYYY") _
& " - " & Range("C" & lngRow).Text
Excel公式做到了这一点没有问题,但是在这里它不起作用。没有斜线!?
一种解决方法是:
Range("O" & lngRow) = Replace(Format(Range("B" & lngRow), "MM/DD/YYYY"), _
".", "/") & " - " & Range("C" & lngRow).Text
我希望有人能弄清单线。