VBA Excel - вызов функции из Excel - PullRequest
0 голосов
/ 28 ноября 2018

Я написал программу VBA для удаления гласных.Я не могу вызвать функцию из Excel.я получаю ошибку #NAME.Код ниже

Function REMOVEVOWELS(Txt) As String
'Removes all vowels from the Txt argument
 Dim i As Long
 REMOVEVOWELS = ""
 For i = 1 To Len(Txt)
     If Not UCase(Mid(Txt, i, 1)) Like "(AEIOU)" Then
         REMOVEVOWELS = REMOVEVOWELS & Mid(Txt, i, 1)
     End If
 Next i
 End Function

Кодовые метки, вставленные Тимом Стэком

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Переписано, проверено и работает!Вставьте это в верхней части модуля

Function REMOVEVOWELS(Txt) As String
'Removes all vowels from the Txt argument
 Dim i As Long
 For i = 1 To Len(Txt)
    If Mid(Txt, i, 1) Like "[AEIOU]" Then
        Txt = Replace(Txt, Mid(Txt, i, 1), "")
    End If
 Next i
REMOVEVOWELS = Txt
 End Function

РЕДАКТИРОВАТЬ

Более элегантное решение.

Function REMOVEVOWELS(Txt) As String
'Removes all vowels from the Txt argument
Vowels = Array("A", "E", "I", "O", "U")

For Each a In Vowels
    Txt = Replace(Txt, a, "")
Next a
REMOVEVOWELS = Txt
 End Function
0 голосов
/ 28 ноября 2018

Обратите внимание на ошибку #NAME (не о логике) - скорее всего, вы добавили функцию на уровне приложения «Лист» в VBA.Вместо этого он должен быть добавлен в отдельный модуль (щелкните правой кнопкой мыши на VBAProject - Вставить - Модуль)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...