Эти пару дней мучил макрос, но моих знаний недостаточно, либо не хватает смекалки, как это сделать. Вот попробовал счетчик букв сделать, которые можно заменить. Считать-то он считает, да только неправильно...
Код
Sub RUS_Chr()
Dim LATChr$: LATChr = "CcEeTOopPAaHKkXxBM06"
Dim RUSChr$: RUSChr = "СсЕеТОорРАаНКкХхВМОб"
Dim i%, iCell As Range
Dim k As Integer
k = 0
For Each iCell In ActiveSheet.Range("A1")
For i = 1 To Len(RUSChr)
With iCell
If .Value Like "*" & Mid(RUSChr, i, 1) & "*" Then
k = k + 1
End If
End With
Next i
Next iCell
Cells(10, 1) = k
End Sub
Еще вопрос. Не могли бы Вы объяснить роль функции Len, пожалуйста?
AndreTM, Вы были правы)) Препод не стал долго спорить, сказал сделать Макс количество возможных вариантов не более 1000.
Цитата
AndreTM написал: Если это означает "вывести не более N вариантов" - то это одно. Если же "посчитать количество возможных вариантов и предупредить, что "ми-и-и-и-ллиио-о-о-он йа-а-а-а вывводи-и-и-и-ить бу-у-у-ду до-о-о-о-лго" - это другое.
Первое
Цитата
Kirill Gureev написал: Мнда... я тоже думал о том, что вариантов будет масса.... и как их выводить... куда? на этот же лист? после текущего текста? А может заменять существующий, тогда, собственно, получится вариант со всеми заменёнными символами и всё.
Задаем лимит не более 1000 вариантов. Вбиваем нужное нам предложение в ячейку А1, в ячейку B1 вбиваем количество вариантов, которое мы хотим. Запускаем макрос, и он выводит варианты в ячейки, начиная с А2 по Аn. Все действия на текущем листе.
kavaka08, я конкретно написал, в чем нуждаюсь. И я с самого начала дал понять, что не разбираюсь в VBA... Не хочу грубить, но если Вы не знаете, что написать по теме, тогда лучше помолчите.
Задача:Сделать максимальное количество вариантов видимых одинаково, (читаемых одинаково), но по кодировке можно менять сколько угодно раз через рус лат буквы.
пример: слово ТЕКСТ имеет порядка 15 вариантов написания: текст, Текст, тЕкст, теКст, текСт, тексТ, ТЕкст, ТеКст и т.д. Капсом писал латинский шрифт, чтобы наглядно было видно.
AndreTM написал: вам нужна процедура, которая именно только при своём запуске, да ещё и, скажем, для указанного диапазона ячеек только, - заменит символы
kavaka08, я бы не писал сюда, если бы не был на «Вы» с VBA.
Вот макрос от пользователя Alex_ST
Код
Sub RUS_Chr()
Dim LATChr$: LATChr = "CcEeTOopPAaHKkXxBM"
Dim RUSChr$: RUSChr = "СсЕеТОорРАаНКкХхВМ"
Dim i%, iSht As Worksheet
For Each iSht In ThisWorkbook.Sheets
For i = 1 To Len(LATChr)
iSht.UsedRange.Replace _
What:=Mid(LATChr, i, 1), _
Replacement:=Mid(RUSChr, i, 1), _
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True
Next i
Next iSht
End Sub
Можно ли его как-то преобразовать, чтобы подходил под моё описание?
Добрый день, форумчане! Подскажите, пожалуйста, макрос, который случайным образом заменял бы русские буквы на схожие латинские, но не сразу все. К примеру, в слове «привет» может заменить сразу «р» и «е». А может только «р» или же только «е». Надеюсь, понятно объяснил.