Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
dmr12345
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 105
1

Скопировать столбец ФИО из одного листа на другой лист с разбивкой на 3 ячейки

27.05.2016, 07:23. Просмотров 1254. Ответов 11
Метки нет (Все метки)

Необходимо копировать столбец ФИО из одного листа на другой лист с разбивкой на 3 ячейки

Здесь копируется и разбиваются только две ячейки
Visual Basic
1
2
Sheets(2).[B3].Resize(, 3) = Split(Application.Trim(Sheets(1).[c4]), , 3)
Sheets(2).[B4].Resize(, 3) = Split(Application.Trim(Sheets(1).[c5]), , 3)
Нужно скопировать 60 ячеек
Как записать все в одну формулу
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2016, 07:23
Ответы с готовыми решениями:

Перенос данных с одного листа в другой лист по строкам в разные ячейки
Добрый день! Помогите разобраться, есть файл Excel, в Лист2 занесены данные для печати в нужной...

Как присвоить значение ячейки одного листа и поставить ее в другой лист
Подскажите пожалуйста! Как присвоить значение ячейки одного листа и поставить ее в другой лист ...

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

Скопировать данные из одного листа таблицы в другую таблицу на лист в последнюю не заполненную строку?
Здравствуйте подскажите пожалуйста!!!, как сделать чтобы копировалось из таблицы в таблицу,...

11
snipe
3198 / 1152 / 289
Регистрация: 07.08.2013
Сообщений: 2,914
27.05.2016, 07:33 2
А зачем vba
на вкладке данные есть кнопочка Текст по столбцам
0
Alex77755
11001 / 3455 / 594
Регистрация: 13.02.2009
Сообщений: 10,271
27.05.2016, 07:35 3
Лучший ответ Сообщение было отмечено dmr12345 как решение

Решение

в цикле как-то так
Visual Basic
1
2
3
For i = 3 To 60
    Sheets(2).Cells(i, 2).Resize(, 3) = Split(Application.Trim(Sheets(1).Cells(i, 4)), , 3)
Next i
1
dmr12345
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 105
27.05.2016, 08:11  [ТС] 4
Спасибо получается, у меня в ячейке C4 находится ФИО, а он начинает копировать из C3
0
snipe
3198 / 1152 / 289
Регистрация: 07.08.2013
Сообщений: 2,914
27.05.2016, 08:13 5
ну так что мешает подправить код
вот тут
Visual Basic
1
For i = 3 To 60
написано что перебираем ячейки с 3 строки по 60
0
dmr12345
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 105
27.05.2016, 08:22  [ТС] 6
да нет это копирует с 6 по 60 ячейки

For i = 3 To 60

Добавлено через 21 секунду
т.е.
да нет это копирует с 3 по 60 ячейки

For i = 3 To 60

Добавлено через 5 минут
У меня вторая строка слита может это мешает
0
snipe
3198 / 1152 / 289
Регистрация: 07.08.2013
Сообщений: 2,914
27.05.2016, 08:24 7
Лучший ответ Сообщение было отмечено dmr12345 как решение

Решение

видите это место - i это номер строки
Visual Basic
1
Sheets(2).Cells(i, 2).Resize(, 3)
вот тут тоже самое
Visual Basic
1
Split(Application.Trim(Sheets(1).Cells(i, 4)), , 3)
что мешает сделать сдвиг
например так
Visual Basic
1
Sheets(2).Cells(i+1, 2).Resize(, 3) = Split(Application.Trim(Sheets(1).Cells(i, 4)), , 3)
1
dmr12345
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 105
27.05.2016, 08:41  [ТС] 8
Получилось огромное спасибо

вот
Visual Basic
1
2
For i = 4 To 65536
    Sheets(2).Cells(i - 1, 2).Resize(, 3) = Split(Application.Trim(Sheets(1).Cells(i, 3)), , 3)
0
snipe
3198 / 1152 / 289
Регистрация: 07.08.2013
Сообщений: 2,914
27.05.2016, 08:45 9
И понесли Митьку тапки
Зачем по 65536 строку
ждать замучаетесь
есть же формулы вычисления последней строки в столбце
0
dmr12345
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 105
27.05.2016, 10:22  [ТС] 10
Как добавить написать эту формулу в данное выражение?
0
Hugo121
6557 / 2592 / 472
Регистрация: 19.10.2012
Сообщений: 7,790
27.05.2016, 10:38 11
Не видя файла с данными надёжную "формулу" писать слишком долго.
0
dmr12345
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 105
27.05.2016, 10:41  [ТС] 12
его нужно вставить в этот же код, в дату, возраст и в 3 ячейки ФИО

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Macro1()
 
 
Range("D4:D65536").Copy Worksheets("Лист1").Range("E3")  'копируем дату
Range("E4:E65536").Copy Worksheets("Лист1").Range("F3")  'копируем возраст
 
'Получилось не трогать
For i = 4 To 65536  'Копируем и разбиваем столбец с ФИО
    Sheets(2).Cells(i - 1, 2).Resize(, 3) = Split(Application.Trim(Sheets(1).Cells(i, 3)), , 3)
Next i
 
    
End Sub
0
27.05.2016, 10:41
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2016, 10:41

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Скопировать строку из одного листа в другой
Осуществляют поиск записей с совпадениями. Если оно есть, то строку нужно скопировать на созданный...

Перенос данных с ячеек одного листа на другой лист
Добрый день! Помогите пожалуйста автоматизировать заполнение таблицы (графика на месяц). Excel...

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

Скопировать одинаковые данные с одного листа на другой
Вроде выражение правильное, но не работает. Столбы под соответствующими именами. Копировать...


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

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

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