Excel VBA函数在尝试在Excel公式中使用时给出#值错误
我正在使用下面的代码从文本中删除元音,当我使用VBA运行它时,效果很好。 但当我在Excel中使用相同的公式=RMV(Text)时,它会给我一个错误值。 下面是代码,请帮忙Excel VBA函数在尝试在Excel公式中使用时给出#值错误,excel,function,vba,Excel,Function,Vba,我正在使用下面的代码从文本中删除元音,当我使用VBA运行它时,效果很好。 但当我在Excel中使用相同的公式=RMV(Text)时,它会给我一个错误值。 下面是代码,请帮忙 函数RMV(文本)作为字符串 'RMV=去掉元音 我想我会坚持多久 Dim J尽可能长 将Ws设置为工作表 暗淡单元格作为范围 设置Ws=ActiveWorkbook.Sheets(“sheet1”) I=2 J=1 Lastrow=Ws.Cells(Rows.Count,1).End(xlUp).Row 对于I=2到最后
函数RMV(文本)作为字符串
'RMV=去掉元音
我想我会坚持多久
Dim J尽可能长
将Ws设置为工作表
暗淡单元格作为范围
设置Ws=ActiveWorkbook.Sheets(“sheet1”)
I=2
J=1
Lastrow=Ws.Cells(Rows.Count,1).End(xlUp).Row
对于I=2到最后一行“”,循环将覆盖范围内的所有单元格
RMV=“”
如果Ws.Cells(I,1)”,则“如果条件为选择每个单元格
Text=Ws.Cells(I,1)“将单元格值分配给变量Text”
对于J=1到Len(文本)''For loop To go扫描文本中的每个字母
如果不是像“[AEIOU]”这样的UCase(Mid(Text,J,1)),那么
RMV=RMV&Mid(文本,J,1)
如果结束
下一个J
Lastrow1=Ws.Cells(Rows.Count,2).End(xlUp).Row
单元(I,2)=RMV
如果结束
接下来我
端函数
单元格(I,2)=RMV
是您的问题。在执行函数期间,不能直接写回工作表(否则计算过程将中断)
您唯一能做的就是将
RMV
设置为调整后的字符串。这将返回到工作表。感谢您的帮助,我是VBA宏新手,您能帮助我如何将RMV设置为调整后的字符串吗。
Function RMV(Text) As String
'RMV = RemoveVowels
Dim I As Long
Dim J As Long
Dim Ws As Worksheet
Dim Cell As Range
Set Ws = ActiveWorkbook.Sheets("sheet1")
I = 2
J = 1
Lastrow = Ws.Cells(Rows.Count, 1).End(xlUp).Row
For I = 2 To Lastrow '' For Loop to cover all the cells in the range
RMV = ""
If Ws.Cells(I, 1) <> "" Then ''If condition to select each cell
Text = Ws.Cells(I, 1) '' Assigning the cell Value to variable Text
For J = 1 To Len(Text) '' FOR loop to go scan each letter in the Text
If Not UCase(Mid(Text, J, 1)) Like "[AEIOU]" Then
RMV = RMV & Mid(Text, J, 1)
End If
Next J
Lastrow1 = Ws.Cells(Rows.Count, 2).End(xlUp).Row
Cells(I, 2) = RMV
End If
Next I
End Function