整理excelfunction

我有一个excelfunction,可以完成我想要的工作,但大概可以整理一下:

=CELL("contents",E2) & (", ") & CELL("contents",F2) & (", ") & CELL("contents",G2 )& (", ") & CELL("contents",H2) 

它从一行中的四个单元格获取信息,并在每个单元格之间添加一个逗号和空格。

我怎样整理它? 另外,如何在不改变“E3,F3,G3,H3”,“E4,F4,G4,H4”等单元格的情况下,

更简单:

 =E2 & ", " & F2 & ", " & G2 & ", " & H2 

你也可以编写一个VBA函数来模仿.NET的string.Join()函数,然后公式就可以了

 =JOIN(E2:H2) 

或者,也许,取决于你如何编写函数:

 =JOIN(E2:H2, ", ") 

正如评论者所指出的,如果您复制并粘贴上述公式,Excel将调整单元格引用以保持与新位置的相对关系。

以下是JOIN()的一个可能的实现:

 Public Function JOIN(rngValues As Range, strSeparator As String) As String Dim rngCell As Range For Each rngCell In rngValues If Not IsEmpty(rngCell) Then If Len(JOIN) Then JOIN = JOIN & strSeparator End If JOIN = JOIN & rngCell End If Next End Function