在VBA中使用MID和LEFT连接

我目前正在编写一个macros,它允许我打开一个文件,插入3行并连接文件的各个部分,以便创build一个可以在VLOOKUP中引用的唯一string。 我尝试使用公式CONCATENATE(Mid(E8,7,2),“/”,Mid(E8,5,2),“/”,Left(E8,4)) ,我的代码如下所示:

Sub OpenDCSheet() Dim OpenFileName As String Dim wb As Workbook Dim LastRow As Long MasterSheet = ActiveWorkbook.Name 'Select and Open workbook MsgBox ("Please select the data file") OpenFileName = Application.GetOpenFilename If OpenFileName = "False" Then Exit Sub Set wb = Workbooks.Open(OpenFileName, UpdateLinks = 0) DoubleClickSheet = ActiveWorkbook.Name Windows(DoubleClickSheet).Activate 'Inserting a Column at Column B [B3].Resize(, 3).EntireColumn.Insert Range("B8").Select ActiveCell.Formula = CONCATENATE(Mid(E8, 7, 2), "/", Mid(E8, 5, 2), "/", Left(E8, 4)) 

任何人都可以排除故障为什么这不起作用?

谢谢,

亚伦

如果你打算Vlookup唯一的string。

我会build议你使用用户定义函数(UDF)join。 而不是使用连接。

以下是他们之间的差异: 在这里input图片描述

处理date,连接会带来另一个问题。

以下是我创build的UDF:

 Function joinCell(ByVal inputRange As Range) As String Dim nCell As Range Dim nText As String For Each nCell In inputRange.Cells nText = nText & Trim(CStr(nCell.Value)) Next joinCell = nText End Function 

希望这个帮助。

你非常接近。 考虑:

 ActiveCell.Formula = "=CONCATENATE(Mid(E8, 7, 2), ""/"", Mid(E8, 5, 2), ""/"", Left(E8, 4))" 

这只能解决这一行代码中的错误。 您可能还有其他问题。