Строковая функция VBA - PullRequest
0 голосов
/ 05 марта 2020

Вот подсказка Вопрос:

Напишите подпрограмму, которая выполняет следующие действия: 1) она поручает пользователю ввести слово; 2) он вводит каждый символ слова в обратном порядке в последовательные ячейки в строке 5, начиная с ячейки «B5». подсказка: используйте для l oop.

Я не могу понять, как начать, вот что у меня есть, но я знаю, что это совершенно неправильно:

Public Sub Question2()

Dim Word As String
Dim Counter As Integer

Word = InputBox("Please Enter a word")

For Counter = 1 To Len(Word)
    Range("B5").EntireRow.Value = StrReverse(Word)
Next

End Sub

Ответы [ 2 ]

1 голос
/ 05 марта 2020

Возможно, что-то вроде следующего, используя Step -1 до l oop от последнего символа к первому, Offset для увеличения столбца с каждой итерацией l oop и Mid$ для возврата символы по одному:

Public Sub Question2()

    Dim Word As String
    Dim Counter As Integer

    Word = InputBox("Please Enter a word")

    For Counter = Len(Word) To 1 Step -1
        Range("B5").Offset(, Len(Word) - Counter).Value = Mid$(Word, Counter, 1)
    Next

End Sub

Из, если вы хотите использовать StrReverse:

Public Sub Question2()

    Dim Word As String
    Dim Counter As Integer

    Word = InputBox("Please Enter a word")
    Word = StrReverse(Word)

    For Counter = 1 To Len(Word)
        Range("B5").Offset(, Counter - 1).Value = Mid$(Word, Counter, 1)
    Next

End Sub
0 голосов
/ 05 марта 2020

Если вы можете быть уверены, что это только символы ANSI (скорее всего, скрестив пальцы), вы можете использовать StrConv для преобразования строки в UNICODE, а затем разделить на массив с помощью терминатора UNICODE (Chr (0)), а затем записать массив прямо в ячейки ...

Public Sub Question2()

   Dim vArray As Variant
   vArray = Split(StrConv(StrReverse(InputBox("Please Enter a word")), 64), Chr(0))
   Range("B5").Resize(1, UBound(vArray)) = vArray

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