Excel的文本格式宏

时间:2013-08-06 18:59:09

标签: excel excel-vba vba

我正在尝试将每个名称列表(每个名称在一个单独的单元格中)转换为带有#的列表,然后在每个名称逗号之前将其合并到一个单元格中。我将使用什么类型的宏。所以:

Help 

Me 

Please 

Thank 

You 

进入(单细胞):

#help, #me, #please, #thank, #you 

由于

2 个答案:

答案 0 :(得分:1)

试试这段代码:

function convertNames(startRow as long,endRow as long,column as long) as string

dim result as string  

for c=startRow to endRow
 result=result & "#" & Cells(c,column) & ", "
next

result=left(result,len(result)-2)

convertNames=result

end function

您可以在要将结果显示为:

的单元格中调用此函数
=convertNames(5,12,2)

替换您需要的起始行,结束行和列索引。

答案 1 :(得分:1)

尝试此功能:

Function ConvertNames(List As Range) As String
  Dim C As Range

  For Each C In List
    ConvertNames = ConvertNames & "#" & C.Value2 & ", "
  Next C

  ConvertNames = Left(ConvertNames, Len(ConvertNames) - 2)
End Function

它的灵感来自sigil的答案,但是这个可以使用范围,并允许Excel管理对单元格的引用。 Sigil的功能应该是volatile,并且会减慢大文件的速度。

您需要向项目添加模块并将此功能放入模块中。然后,您可以通过在使用它的单元格上键入=ConvertNames(A1:A5)来使用它。