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

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

27.05.2016, 07:23. Просмотров 1174. Ответов 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 занесены данные для печати в нужной...

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

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

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

11
snipe
3161 / 1127 / 275
Регистрация: 07.08.2013
Сообщений: 2,875
27.05.2016, 07:33 2
А зачем vba
на вкладке данные есть кнопочка Текст по столбцам
0
Alex77755
10981 / 3439 / 591
Регистрация: 13.02.2009
Сообщений: 10,218
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
27.05.2016, 08:11
snipe
3161 / 1127 / 275
Регистрация: 07.08.2013
Сообщений: 2,875
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
3161 / 1127 / 275
Регистрация: 07.08.2013
Сообщений: 2,875
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
3161 / 1127 / 275
Регистрация: 07.08.2013
Сообщений: 2,875
27.05.2016, 08:45 9
И понесли Митьку тапки
Зачем по 65536 строку
ждать замучаетесь
есть же формулы вычисления последней строки в столбце
0
dmr12345
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 105
27.05.2016, 10:22  [ТС] 10
Как добавить написать эту формулу в данное выражение?
0
Hugo121
6441 / 2502 / 447
Регистрация: 19.10.2012
Сообщений: 7,502
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

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

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

Скопировать определенные данные с одного листа на другой
Исходный файл:Есть некий файл с огромным количеством данных.Первый столбец данных это...


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

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

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