После каждой буквы добавить «да» с помощью VBA.

Автор sergey707770729, 24 декабря 2014, 00:15

sergey707770729

Сначала задали сделать задание в excel, используя обычные текстовые функции excel, а потом задали сделать это же задание в vba, используя строковые функции.

Собственно само задание: После каждой буквы добавить «да».

C2=ЗАМЕНИТЬ(ЗАМЕНИТЬ(ЗАМЕНИТЬ(ЗАМЕНИТЬ(ЗАМЕНИТЬ(A2;2;0;A4);5;0;A4);8;0;A4);11;0;A4);14;0;A4)

В excel я сразу разобрался, а вот с vba меня ждали проблемы. Жду умного совета от вас, ребята.

[вложение удалено администратором]

Администратор

sergey, в коде ниже используется другой инструмент, чем Вы использовали в Excel. В VBA есть аналог excel-функции "ЗАМЕНИТЬ" - это оператор Mid (в VBA есть и функция и оператор Mid, поэтому не путайте оператор с функцией). Но с помощью Mid нельзя сделать так же, как Вы сделали. С помощью оператора Mid можно только заменять буквы, а вставить между буквами нельзя.

Код:

Sub p1()
   
    ' Создание в оперативной памяти компьютера поименованной области - переменной "str".
        ' Переменную можно сравнить с обычным файлом, но файл находится на жёстком диске компьютера,
        ' а переменная в оперативной памяти.
        ' Переменные используются, чтобы в них что-то класть для каких-нибудь целей.
    ' String означает, что в переменной данные будут восприниматься компьютером, как текст.
        ' Ещё данные могут восприниматься, например, как число.
    Dim str As String, strRes As String
    ' Long означает, что в переменной может быть только число. И число это может быть только целое
        ' (бывают ещё дробные числа).
    Dim i As Long
   
    ' Копирование данных из ячейки A2 в переменную.
        ' Это упростит написание кода, т.к. удобнее писать str, чем "range("A2").Value".
    str = Range("A2").Value
   
    ' For .. To ... Step ... Next - называется циклом.
        ' Цикл используется, чтобы делать одну и ту же команду несколько раз.
    ' Len(str) - даёт кол-во символов. В случае со словом "кошка" это даст 5.
    For i = 1 To Len(str) Step 1
        ' Изменяться текст будет не прямо в переменной str, т.к. это сложно сделать,
            ' а будет формироваться новый текст в переменной strRes.
        ' В переменную strRes помещаем текст из самой же переменной.
        ' Символ & используется, чтобы соединить фрагменты текста в одну строку.
        ' Присоединяем букву из исходного слова. Mid(str, i, 1) даёт букву.
        ' И в конце присоединяем "да".
        strRes = strRes & Mid(str, i, 1) & "да"
    Next i
   
    ' Выводим результат в Excel.
    Range("C2").Value = strRes
   
End Sub
[свернуть]

sergey707770729