Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
xdrivers
0 / 0 / 0
Регистрация: 23.01.2015
Сообщений: 17
1

Переставление ячеек из столбца в строку

10.10.2016, 07:05. Просмотров 414. Ответов 3
Метки нет (Все метки)

Здравствуйте!
Помогите, пожалуйста. Мне нужен лисп, который последовательно читает строки первого столбца в Excel и в зависимости от последней цифры расставляет это и следующие за ним три числа в строку.
Причем, если цифра 1 - то слева, цифра 0 - по центру, цифра 2 - справа.
Потом анализируются следующие три строки и т.д.
В приложении - файл. В левой части - то, что есть, в правой - то, что должно получиться.
0
Вложения
Тип файла: xlsx пример.xlsx (28.9 Кб, 5 просмотров)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2016, 07:05
Ответы с готовыми решениями:

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

Сравнить 2 столбца, и для ячеек с совпадениями в столбце А перейти на 2 столбца вправо и вставить значение
Добрый день! Помогите пожалуйста решить одну проблему. Нужно сравнить 2 столбца, и для ячеек с...

Сумма всех ячеек столбца
Добрый день, уважаемые форумчане. С VBA давно не сталкивался. Возник уж совсем глупый вопрос, как...

Объединение ячеек столбца в word
Открывается вордовский документ в котором есть таблица. Нужно объеденить 1,2,3 ячейку в 1 столбце....

Событие на клик ячеек всего столбца
ребят, помогите. есть столбец - Комментарии. я написал событие на клик на первую ячейку этого...

3
Burk
985 / 688 / 207
Регистрация: 11.07.2014
Сообщений: 2,440
10.10.2016, 08:45 2
xdrivers, посылаю макрос для вашего примера

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Perestavit()
Dim LastRow As Long, I As Long, J As Integer, L As Long
Dim K As Integer, S As String
Sheets(1).Activate
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
 
For I = 1 To LastRow
 S = Right(Str(Cells(I, 1)), 1)
 K = IIf(S = "1", 8, IIf(S = "0", 12, IIf(S = "2", 16, 0)))
 If K > 0 Then
   L = Cells(I, 1) \ 100
   For J = 1 To 4
     Cells(L, J + K) = Cells(I, J)
   Next
 End If
Next
End Sub
1
Burk
985 / 688 / 207
Регистрация: 11.07.2014
Сообщений: 2,440
10.10.2016, 11:15 3
xdrivers, сохраняете свой файл как файл с макросами с расширением XLSM, в редакторе Visual Basic создаете модуль и вставляете этот текст. Запускаете макрос Perestavit через вкладку разработчик - макросы и получите, что хотели. Подробнее проконсультируетесь у своих друзей, знающих Excel, так будет проще. Но приведенный мною алгоритм можно реализовать и на ЛИСП и на СИ и т.д. Нужно только разобраться. В приложении посылаю файл вашего примера с уже вставленным макросом.
1
Вложения
Тип файла: rar пример.rar (30.6 Кб, 3 просмотров)
xdrivers
0 / 0 / 0
Регистрация: 23.01.2015
Сообщений: 17
10.10.2016, 12:01  [ТС] 4
Огромное человеческое спасибо!
0
10.10.2016, 12:01
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2016, 12:01

Заливка ячеек столбца по значению из столбца на другом листе
Здравствуйте, Подскажите пожалуйста, как залить ячейки столбца B на 2 листе, если значение из...

Выполнить перенос максимального элемента каждого столбца в первую строку этого же столбца
9. Дана матрица А, выполнить перенос максимального элемента каждого столбца в первую строку этого...

Суммирование ячеек столбца
Ребята, всем привет! Никак не могу понять как сложить столбцы в таблице. Пожалуйста, помогите! Мне...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.