Удаление первого символа строки, если она равна чему-то

Я занимаюсь VBA для 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

Ответ 1

Я тестировал вашу функцию в 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

Ответ 2

В вашем коде нет ничего особенно плохого, сообщение об ошибке "неоднозначное" в этом контексте очень вероятно, потому что у вас есть другая подфункция или функция в другом модуле с тем же именем. Найдите двойное имя.

Если вы поместите функцию в модуль, принадлежащий форме или отчету, лучше всего пропустить "Публикация". Если вы намерены использовать функцию в нескольких формах, создайте новый модуль, который не привязан к форме, и поместите функции, которые предназначены для всех форм и отчетов.

Почти всегда полезно предоставить полное сообщение об ошибке и номер ошибки.