Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在个人笔记本中创建VBA函数会产生名称?错误_Vba_Excel - Fatal编程技术网

在个人笔记本中创建VBA函数会产生名称?错误

在个人笔记本中创建VBA函数会产生名称?错误,vba,excel,Vba,Excel,我正在创建一个VBA函数来组合带有逗号分隔符的单元格,并尝试将其保存到我的个人笔记本中,以便所有笔记本都可以使用它。由于某些原因,我可以在使用“录制宏”功能时使其工作,但在使用VBA时却不能 VBA: 函数组合(工作范围为,可选符号为String=“,”)为String '更新20130815 变暗Rng As范围 像线一样暗的伸出 对于WorkRng中的每个Rng 如果Rng.Text“,”则 outsr=outsr&Rng.文本和符号 如果结束 下一个 联合收割机=左(伸出,长(伸出)-1)

我正在创建一个VBA函数来组合带有逗号分隔符的单元格,并尝试将其保存到我的个人笔记本中,以便所有笔记本都可以使用它。由于某些原因,我可以在使用“录制宏”功能时使其工作,但在使用VBA时却不能

VBA:

函数组合(工作范围为,可选符号为String=“,”)为String
'更新20130815
变暗Rng As范围
像线一样暗的伸出
对于WorkRng中的每个Rng
如果Rng.Text“,”则
outsr=outsr&Rng.文本和符号
如果结束
下一个
联合收割机=左(伸出,长(伸出)-1)
端函数
…下面是一个屏幕截图,显示了它的保存位置:


但当我键入
=combine(单元格范围在这里)
时,结果是
\NAME?
。我做错了什么?

您打算如何处理
可选符号为String=“,”
?我相信这是导致错误的原因。我对VBA非常不熟悉,从博客上复制了代码。我假设它是一个可选参数,当在Mac上组合所选CellsAHH-时,在分隔符处使用它。那就不知道了,对不起。但是希望这能奏效。。。要查找存储位置,请打开即时窗口,在个人工作簿中选择一个模块,然后键入
?thiswoolk.FullName
。应该给你工作簿的路径-如果它在Mac上是相同的。@JeremyThomas-我刚才提到将它作为一种故障排除方法放在新工作簿中,只是为了测试VBA代码是否正常工作。如果代码在新工作簿中工作(如您所拥有的,或者取出我提到的
可选
部分),那么我们知道问题出在
Personal.xlsb
部分,而不是代码本身。@BruceWayne当我在本地创建函数时,它工作正常。这不是函数的问题,只是定位的问题
Function combine(WorkRng As Range, Optional Sign As String = ",") As String
'Update 20130815
Dim Rng As Range
Dim OutStr As String
For Each Rng In WorkRng
    If Rng.Text <> "," Then
        OutStr = OutStr & Rng.Text & Sign
    End If
Next
combine = Left(OutStr, Len(OutStr) - 1)
End Function