我试图将每个单独的单元格中的名称列表转换为每个名称后面都带有#的列表,并将其组合为单个单元格。我会使用什么类型的宏。所以:用于Excel的文本格式宏
Help
Me
Please
Thank
You
进(单细胞):
#help, #me, #please, #thank, #you
感谢
我试图将每个单独的单元格中的名称列表转换为每个名称后面都带有#的列表,并将其组合为单个单元格。我会使用什么类型的宏。所以:用于Excel的文本格式宏
Help
Me
Please
Thank
You
进(单细胞):
#help, #me, #please, #thank, #you
感谢
试试这个代码:
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)
代替您需要的开始行,结束行和列索引。
试试这个功能:
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
它由印记的回答启发,但射程这一个工程,并允许Excel管理单元格引用。 Sigil的功能应该是volatile,并会减慢大文件。
您需要在项目中添加一个模块并将该函数放入模块中。然后你可以在使用它的单元上输入=ConvertNames(A1:A5)
来使用它。
就易失性功能问题达成一致意见。这是一个更好的解决方案,因为它可以让你传入任何范围,因此没有工作表引用问题,可能会影响我的解决方案。谢谢stenci。 – sigil
谢谢!它仅显示#,#,#,而不是列a和#中的值。可能是用户错误,但会爱你的想法! – amjkell
您是否将VBA函数放在您调用它的同一个工作表中,或者是否将它放在了它自己的模块中?如果它在自己的模块中(或在不同的工作表中),则需要通过将'Cells(c,column)'更改为'Sheets(“nameOfWorksheet”)来指定工作表。单元格(c,column)'。 – sigil