Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
2 / 2 / 0
Регистрация: 11.01.2016
Сообщений: 109
Excel

Задать направления текста в ячейке для нескольких ячеек через цикл

04.01.2021, 12:20. Показов 4196. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Необходимо задать направление текста снизу вверх в нескольких ячейках. Для этого создаю массив ячеек, потом через цикл For Each применяю для каждого элемента цикла код, который задает направление текста в ячейках.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    Dim Clls(3) As Variant
    Clls(1) = Range("F4").Select
    Clls(2) = Range("J4").Select
    Clls(3) = Range("L4").Select
    For Each element In Clls
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 90
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Next
Проблема в том, что направление текста меняется только в последнем элементе цикла, т.е. в ячейке "L4", если элементов сделать больше, то опять же, направление текста меняется только в последнем из них. В чём ошибка?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.01.2021, 12:20
Ответы с готовыми решениями:

Объединение текста из нескольких ячеек в одну ячейке, по всей таблице
Есть большая таблица с которой требуется проводить разные манипуляции такие как сортировка и объединение, но для этого ее надо привести к...

Работа с OLE-сервером Word (изменение направления текста в ячейке таблицы)
Обучался по этому примеру На данный момент никак не могу сообразить как поменять направление текста в ячейке таблицы Создаем таблицу ...

Замена текста в определенном месте текстовой строки - сразу для нескольких ячеек
Здравствуйте, форумчане. У меня появился такой вопрос. Есть макрос, который извлекает определенный текст из столбца "Z" и...

13
Часто онлайн
 Аватар для КостяФедореев
987 / 637 / 280
Регистрация: 09.01.2017
Сообщений: 2,080
04.01.2021, 12:27
Бляхирев, ничего не понял.
Файл приложите с тем, что есть и как должно получиться
0
2 / 2 / 0
Регистрация: 11.01.2016
Сообщений: 109
04.01.2021, 12:37  [ТС]
Надо чтобы направление текста в ячейках B3, D3, F4, J4 было снизу вверх, т.е. как в ячейке L4 или P4
Вложения
Тип файла: xlsx Файл1.xlsx (10.2 Кб, 9 просмотров)
0
Часто онлайн
 Аватар для КостяФедореев
987 / 637 / 280
Регистрация: 09.01.2017
Сообщений: 2,080
04.01.2021, 13:03
Лучший ответ Сообщение было отмечено Бляхирев как решение

Решение

Бляхирев, попробуйте
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Sub ццй()
For i = 1 To 50
'B3, D3, F4, J4
If Cells(5, i).Column = 2 Or Cells(5, i).Column = 4 Or Cells(5, i).Column = 6 Or Cells(5, i).Column = 10 Then
    With Cells(5, i)
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 90
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    End If
    Next
End Sub
Добавлено через 48 секунд
Цитата Сообщение от Бляхирев Посмотреть сообщение
ячейках B3, D3, F4, J4 было
если таких много ячеек, то тогда массивом нужно.
1
Заблокирован
04.01.2021, 13:37
Бляхирев, может вам ник поменять стоит? Мат на мате. Ну не повезло с фамилией может - зачем настроение никакое остальным портить?
0
2 / 2 / 0
Регистрация: 11.01.2016
Сообщений: 109
04.01.2021, 13:56  [ТС]
Спс. Сделал так, все норм.
0
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
04.01.2021, 14:17
Бляхирев,
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Sub MMM()
Application.ScreenUpdating = False
For Each cell In Worksheets(1).UsedRange
  If cell.MergeCells Then
    If cell.MergeArea.Rows.Count > 1 Then
      With cell
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .Orientation = 90
        .ShrinkToFit = False
        .ReadingOrder = xlContext
      End With
    End If
  End If
Next
For i = 1 To Cells(5, Columns.Count).End(xlToLeft).Column
  With Cells(5, i)
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .Orientation = 90
        .ShrinkToFit = False
        .ReadingOrder = xlContext
  End With
Next
Application.ScreenUpdating = True
 
End Sub
Добавлено через 10 минут
КостяФедореев,

Цитата Сообщение от КостяФедореев Посмотреть сообщение
If Cells(5, i).Column = 2 Or Cells(5, i).Column = 4 Or Cells(5, i).Column = 6 Or Cells(5, i).Column = 10 Then

For i=2 to 10 step 2

Добавлено через 1 минуту
Бляхирев,

А если у вас столбцоа прибавится? или случаЕм с верней ячейкой объедените?
0
Часто онлайн
 Аватар для КостяФедореев
987 / 637 / 280
Регистрация: 09.01.2017
Сообщений: 2,080
04.01.2021, 14:24
Цитата Сообщение от Narimanych Посмотреть сообщение
For i=2 to 10 step 2
восьмого значения нет, придется его исключать из цикла, поэтому применил такое решение
0
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
04.01.2021, 14:26
КостяФедореев,
Цитата Сообщение от КостяФедореев Посмотреть сообщение
восьмого значения нет
Потому что 8 уже перевернут... Посмотрите файл.
0
Часто онлайн
 Аватар для КостяФедореев
987 / 637 / 280
Регистрация: 09.01.2017
Сообщений: 2,080
04.01.2021, 14:31
Цитата Сообщение от Narimanych Посмотреть сообщение
что 8 уже перевернут
я опирался на это
Цитата Сообщение от Бляхирев Посмотреть сообщение
направление текста в ячейках B3, D3, F4, J4 было снизу вверх
а так конечно Ваш вариант лучше
Цитата Сообщение от Narimanych Посмотреть сообщение
For i=2 to 10 step 2

я если честно не понял зачем для 5 ячеек макрос, это же в ручную можно сделать и забыть...
0
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
04.01.2021, 14:34
Цитата Сообщение от КостяФедореев Посмотреть сообщение
если честно не понял зачем для 5 ячеек макрос,
У ТС есть вероятность
Цитата Сообщение от Бляхирев Посмотреть сообщение
элементов сделать больше,
0
Заблокирован
04.01.2021, 14:45
...
Цитата Сообщение от Narimanych Посмотреть сообщение
У ТС есть вероятность
Осталось лишь дождаться Блях...
0
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
04.01.2021, 14:47
badakhshan,
Цитата Сообщение от badakhshan Посмотреть сообщение
Осталось лишь дождаться
Я только трамваи жду....
0
Заблокирован
04.01.2021, 14:56
Я не такая – я жду трамвая
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.01.2021, 14:56
Помогаю со студенческими работами здесь

Даны площади нескольких кругов. Найти радиус самого маленького из них. Через цикл while и через цикл do while
Даны площади нескольких кругов. Найти радиус самого маленького из них. Через цикл while и через цикл do while

Запрет удаления содержимого нескольких ячеек в строке при установке значения в ячейке
Добрый день К сожалению не смог решить сам свою задачу, прошу помощи Есть таблица excel с диапазоном A1:F10 Необходимо запретить...

разъединение ячеек с сохранением текста в правой ячейке
Здравствуйте, подскажите пожалуйста в следующем вопросе. Существует множество различных вариантов кодов для разъединения объединенных ячеек...

Извлечение части текста из ячеек и суммирование извлеченного в отдельной ячейке
Здравствуйте. У меня вопрос по VBA. Он извлекает в ячейку D8 - часть текста из H8, между словами "ЗАПИСЬ-" и ","...

Копирование текста из нескольких ячеек в одну
Здравствуйте, уважаемые форумчане! Решил обратиться к вам за помощью, потому что появился вопрос, требующий скорейшего разрешения (таблица...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru