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

Смещение ячеек в таблице

23.04.2014, 02:00. Показов 4317. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нужно в таблице на определённых участках сместить 5 ячеек в две клетки влево
причём можно эти участки отфильтровать определёнными словами в соседных ячейках
вижу надо пример привести : )

https://www.cyberforum.ru/atta... 1398203890

вот

если это возможно сместить эти ячейки по слову Handicap и Race to Corners
Миниатюры
Смещение ячеек в таблице  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.04.2014, 02:00
Ответы с готовыми решениями:

Word: сравнение ячеек в таблице
Помогите решить задачку, плиз! Существует макрос форматирования таблицы в Word. Нужно дополнить его следующими командами: 1 -...

Сравнение ячеек в таблице и подсчет совпадений
Есть таблица в Microsoft excel в ней х-столбцов, которые содержат данные. Нужно проверить совпадения по строкам и посчитать сумму строк,...

Заливка ячеек по направлениям, представленным в таблице
Добрый вечер, друзья. Помогите решить вопрос. На листе находится столбец с вписанными в него текстовыми обозначениями направлений :...

11
 Аватар для mc-black
2786 / 718 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
23.04.2014, 09:34
На примере скриншота надо нарисовать буквы или номера столбцов, относящиеся к показанным колонкам. Надписи типа "Handicap*" и "Race to Corner*" всегда отстоят на две строки выше смещаемых диапазонов ячеек?
0
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 35
23.04.2014, 09:42  [ТС]
mc-black
Надписи типа "Handicap*" и "Race to Corner*" всегда отстоят на две строки выше смещаемых диапазонов ячеек?
да, надписи всегда стоят на две строки выше смещаемых диапазонов ячеек, только handicap бывает иногда только 0:1
0
 Аватар для mc-black
2786 / 718 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
23.04.2014, 10:01
Лучший ответ Сообщение было отмечено nikanuka как решение

Решение

Колонки в листах идут начиная с "A" (1) для признака фильтрации и далее по порядку, или же как-то иначе?

Добавлено через 16 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Option Explicit
 
Sub MoveItRight()
    Dim i As Long
    
    With Worksheets("Лист1") ' Подставить имя листа
        i = .Cells.SpecialCells(xlCellTypeLastCell).Row
        Do While i > 0
            If .Cells(i, 1) Like "Handycap*" Or .Cells(i, 1) Like "Race to * Corners" Then
                .Range(.Cells(i + 2, 4), .Cells(i + 2, 8)).Cut .Range(.Cells(i + 2, 2), .Cells(i + 2, 6))
            End If
            i = i - 1
        Loop
    End With
End Sub
1
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 35
23.04.2014, 11:28  [ТС]
работает чётко.
спасибо огромное.
а можно это привязать к уже существующему коду?
и как?

последный кусок кода
Visual Basic
1
2
3
4
5
6
7
.Refresh BackgroundQuery:=False
    End With
    NumberFormat = "@"
    Range("B2").HorizontalAlignment = xlLeft
    Columns("B:F").ColumnWidth = 6
    Range("B1").Select
End Sub
0
 Аватар для mc-black
2786 / 718 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
24.04.2014, 10:21
Лучший ответ Сообщение было отмечено nikanuka как решение

Решение

Если этот макрос должен выполниться после того куска однократно, то например так:
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
    .Refresh BackgroundQuery:=False
    End With
    NumberFormat = "@"
    Range("B2").HorizontalAlignment = xlLeft
    Columns("B:F").ColumnWidth = 6
    Range("B1").Select
    Call MoveItRight
End Sub
 
 
Sub MoveItRight()
    Dim i As Long
    
    With Worksheets("Лист1") ' Подставить имя листа
        i = .Cells.SpecialCells(xlCellTypeLastCell).Row
        Do While i > 0
            If .Cells(i, 1) Like "Handycap*" Or .Cells(i, 1) Like "Race to * Corners" Then
                .Range(.Cells(i + 2, 4), .Cells(i + 2, 8)).Cut .Range(.Cells(i + 2, 2), .Cells(i + 2, 6))
            End If
            i = i - 1
        Loop
    End With
End Sub
1
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 35
24.04.2014, 11:29  [ТС]
да, всё в порядке.
назрел ещё вопрос
Handicap* значит, что действие применяется ко всем Handicap-ам в таблице, а если надо исключить например точно такое сочетание - Handicap 0:1.5
чтоб не применялось смещение для этого, что добавить в коде?
0
 Аватар для mc-black
2786 / 718 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
24.04.2014, 11:37
Да, всё так и есть. Чтобы исключить "Handicap 0:1.5", надо немного модифицировать условие if:
Visual Basic
1
If .Cells(i, 1) Like "Handycap*" Or .Cells(i, 1) Like "Race to * Corners" And .Cells(i, 1) <> "Handycap 0:1.5" Then
В выражениях сравнения со словом Like '*' означает любое количество (от ноля и более) любых символов.
1
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 35
24.04.2014, 12:07  [ТС]
ещё вопрос в догонку
если данная таблица формируется на грузинском языке и Handicap выглядит так - ჰანდიკაპი, есть метод для уникода тоже?
0
 Аватар для mc-black
2786 / 718 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
24.04.2014, 13:53
Не уверен на 100%, но скорее всего это будет работать во всех языках. Office поддерживает Unocode. А на грузинском письмо случайно не справа налево? Если да, то звёздочку может понадобиться ставить слева, а не справа.
0
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 35
24.04.2014, 14:09  [ТС]
на грузинском обычно - слево на право, но суть вопроса не в этом
если таблица формируется на грузинском, я же должен записать в макросе нечто подобное
например вместо
If .Cells(i, 1) Like "Handicap*"
нечто
If .Cells(i, 1) Like "ჰანდიკაპი*"

а там вопросительные знаки...

понимаю, что нубовский вопрос, но первые шаги...
0
 Аватар для mc-black
2786 / 718 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
24.04.2014, 21:54
У вас должен быть установлен офис с поддержкой этого языка и windows тоже. Либо что-то одно из этого. В этом вопросе я не готов давать конечные ответы - могу только предполагать.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.04.2014, 21:54
Помогаю со студенческими работами здесь

Объединение более 2х ячеек в таблице Word
Добрый день. Сабж. objTable.Cell(1, 4).Merge objTable.Cell(2, 4) Работает. А возможно ли за раз объединить 5 ячеек? Или 7?

Замена ячеек в таблице данными из буфера обмена
Добрый день, Просьба поделится мнениями/кодом о том как заменить ячейки в таблице в документе Word данными из буфера обмена. Эти...

Как посчитать число выделенных ячеек в таблице Ворда?
Добрый день, уважаемые Форумчане. Вопрос... Есть таблица. Как посчитать выделенные ячейки? Или как запретить макрос, если выделена НЕ...

В текущей таблице выполнить объединение ячеек по заданной схеме
Всем привет! Задание: В текущей таблице выполнить объединение ячеек по схеме: Т.е сначала объединяются все ячейки первой строки, затем...

Выделение ячеек в таблице отличный по первым двум значениям
Здравствуйте! Люди добрые, подскажите, как справиться с задачкой, Есть два столбца, в каждом из них коды, нужно каким-то образом...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru