2011-12-26 230 views
11

我正在练习VBA for Access 2010.删除字符串的第一个字符如果它等于

我阅读了关于我的文章的所有建议文章,但没有找到任何具体内容。 我知道如何移动字符串中的特定字符,我不知道的是我如何移除等于某个字符的特定字符。

我想从电话号码中移动字符1或1-,如果有的话。

例子:17188888888到7188888888或1-7188888888到7188888888

我想使用if语句,只需去除1

的电话号码输入一个字符串不是数字第一次开始。

这就是我已经开始:我得到一个错误信息,RemoveFirstChar是不明确的。

Public Function RemoveFirstChar(RemFstChar As String) As String 
If Left(RemFstChar, 1) = "1" Then 
    RemFstChar = Replace(RemFstChar, "1", "") 
End If 
RemoveFirstChar = RemFstChar 
End Function 

回答

16

我已经测试你的功能在Access 2010和它的工作只是fune。您也可以使用此代码:

Public Function RemoveFirstChar(RemFstChar As String) As String 
Dim TempString As String 
TempString = RemFstChar 
If Left(RemFstChar, 1) = "1" Then 
    If Len(RemFstChar) > 1 Then 
     TempString = Right(RemFstChar, Len(RemFstChar) - 1) 
    End If 
End If 
RemoveFirstChar = TempString 
End Function 
+0

我不确定它为什么不能正常工作,但是你的工作正常,那么如何修改这个以便从头开始删除1-呢?谢谢! – Asynchronous 2011-12-26 06:10:26

+0

感谢您的宝贵意见 - 它真的有所作为!再次感谢! – Asynchronous 2011-12-26 06:13:12

+0

经过对“1”的测试后,您可以在第一个“end if”之后为“ - ”添加第二个测试。 – Karel 2011-12-26 06:30:13

1

没有什么特别的你的代码错误,在“暧昧”的错误在这种情况下的消息很可能是因为您在另一个具有相同名称的模块中有另一个子或函数。搜索以查找重复的名称。

如果您将该功能放在属于表格或报告的模块中,最好跳过“公开”。如果您打算将函数用于多种形式,请创建一个未附加到表单的新模块,并将用于所有表单和报告的函数放入该模块中。

提供完整的错误消息和错误编号几乎总是很好。

相关问题