Найти в Дзене

Эксель и кроссворды. Часть 3. Еще одна разбивка слов на буквы.

Оглавление

Всем привет, меня зовут Андрей, это снова я!

Часто бывает так, что нужно разбивать слова на буквы не совсем стандартным образом. Часто бывает необходимость в том, чтобы выравнивание разбитых слов шло не по первым буквам, а по последним.

Вот что должно получиться при такой разбивке слов на буквы:

Фрагмент листа Эксель.
Фрагмент листа Эксель.

Для такой разбивки нужно немного изменить тот макрос, который раньше производил разбивку с сортировкой по левому краю (по первым буквам).

Вот измененный текст макроса:

Sub Разбить_слова_на_буквы()
'отключаем обновление экрана
Application.ScreenUpdating = False
'Отключаем автоматический пересчет формул
Application.Calculation = xlCalculationManual
'Отключаем отслеживание событий
Application.EnableEvents = False
'Отключаем разбиение на печатные страницы
ActiveWorkbook.ActiveSheet.DisplayPageBreaks = False

q1 = 1 * InputBox("Введите номер первой строки")
q2 = 1 * InputBox("Введите номер последней строки")
emp_ = ThisWorkbook.Names("emp").RefersToRange.Value
For i = q1 To q2
For j = 9 To 48
If Cells(i, 8) >= j - 8 Then
t = Cells(i, 8)
k = 40 - Cells(i, 8)
Cells(i, j) = Mid(Cells(i, 7), j - 8, 1)
Cells(i, j + t + 2 * k) = Mid(Cells(i, 7), j - 8, 1)
Else
Cells(i, j) = emp_
End If

Next j
Next i

'Возвращаем обновление экрана
Application.ScreenUpdating = True
'Возвращаем автоматический пересчет формул
Application.Calculation = xlCalculationAutomatic
'Включаем отслеживание событий
Application.EnableEvents = True
End Sub

  • После выполнения этого макроса у нас появится разбивка слов с сортировкой и по первым буквам, и по последним.

А на этом пока всё, всем пока, и до новых встреч!