Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 19.09.2008, 05:02   #1
VVVasek
 
Регистрация: 18.09.2008
Сообщений: 3
Вопрос Копирование

Подскажите, как это сделать.
Мне нужно чтобы в Excel копировался столбец таблицы, имеющий последние значения в следующий столбец при нажатии, например, некой "кнопки".
В идеале, как показано на примере, столбец С должен полностью копироваться в столбец D, разумеется, с полным совпадением значений по ячейкам. И так далее, т.е. в следующий раз при нажатии этой "кнопки" столбец D должен будет скопироваться в Е.
Заранее огромное спасибо!
Изображения
Тип файла: jpg ПРИМЕР.jpg (23.6 Кб, 155 просмотров)
VVVasek вне форума
Старый 19.09.2008, 11:37   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

пробуй:
Код:
Sub Кнопка1_Щелкнуть()
Dim LastRow%, LastCol%
 LastCol = ThisWorkbook.ActiveSheet.UsedRange.Column + ThisWorkbook.ActiveSheet.UsedRange.Columns.Count - 1
 LastRow = ThisWorkbook.ActiveSheet.UsedRange.Row + ThisWorkbook.ActiveSheet.UsedRange.Rows.Count - 1

 Range(Cells(1, LastCol), Cells(LastRow, LastCol)).Copy Cells(1, LastCol + 1)
 
End Sub
Serge_Bliznykov вне форума
Старый 19.09.2008, 15:40   #3
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию вот так, мне кажется, несколько короче

Cells.SpecialCells(xlLastCell).Row
Cells.SpecialCells(xlLastCell).Colu mn
slan вне форума
Старый 19.09.2008, 19:39   #4
Dvornick
Пользователь
 
Регистрация: 18.09.2008
Сообщений: 15
По умолчанию

Цитата:
пробуй:

Код:

Sub Кнопка1_Щелкнуть()
Dim LastRow%, LastCol%
LastCol = ThisWorkbook.ActiveSheet.UsedRange. Column + ThisWorkbook.ActiveSheet.UsedRange. Columns.Count - 1
LastRow = ThisWorkbook.ActiveSheet.UsedRange. Row + ThisWorkbook.ActiveSheet.UsedRange. Rows.Count - 1

Range(Cells(1, LastCol), Cells(LastRow, LastCol)).Copy Cells(1, LastCol + 1)

End Sub
Цитата:
вот так, мне кажется, несколько короче

--------------------------------------------------------------------------------

Cells.SpecialCells(xlLastCell).Row
Cells.SpecialCells(xlLastCell).Colu mn
Ребят, спасибо, что ответили! Я коллега VVVasek, это наш общий вопрос. :-) Но не подскажите нам, нубам, что это за коды такие и где их прописывать? Представление об Excel лишь поверхностное, научились лишь строить таблицы и использовать некоторые формулы. О макросах, кодах и прочих прибамбасах пока представления не имеем.
Dvornick вне форума
Старый 19.09.2008, 19:42   #5
Dvornick
Пользователь
 
Регистрация: 18.09.2008
Сообщений: 15
По умолчанию

Ещё одна оговорка, не знаю, учли ли вы это в ответе, но "кнопка" желательно чтобы была на листе Excel, там где я её захочу разместить, например, рядом с таблицей. Как создать эту кнопку и сделать, чтобы она выполняла данную операцию, при её нажатии?
Dvornick вне форума
Старый 19.09.2008, 21:15   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

о... как всё запущено ;-(
может Вам книжки немножко почитать?
грубо говоря, кнопку можно добавить через:
меню Вид - Панели инструментов
далее либо "Форма"... либо "Элементы управления"...
элемент "кнопка" есть и там и там. Они отличаются, но для Вас это сейчас неважно - попробуйте одну и другую, выберите ту, что понравится/разберётесь...
Если из меню "Элементы управления" то - правой кнопкой мышки - "Исходный текст"
откроется окно редактора, в нём будет текст пустого макроса:
Код:
Private Sub CommandButton1_Click()

End Sub
вставьте туда вышеприведённый текст...
всё...
p.s. изменять размеры/позицию кнопки можно, если выбрать "режим конструктора" (это первая кнопочка на панельке "Элементы управления")
Serge_Bliznykov вне форума
Старый 19.09.2008, 22:01   #7
Dvornick
Пользователь
 
Регистрация: 18.09.2008
Сообщений: 15
По умолчанию

Здорово! Я себя программистом почувствовал!
Но получилось, не то, что хотелось. А именно просто создаётся новая колонка (например была таблица из трёх колонок, а стала из четырёх ... и т.д.). А мне требовалось другое : чтобы в УЖЕ ИМЕЮЩЕЙСЯ таблице с конкретным количеством колонок внтури неё копировался ТЕКСТ из последней заполненной колонки в следующую по порядку.
Изображения
Тип файла: jpg ScreenHunter_04 Sep. 19 21.58.jpg (30.0 Кб, 150 просмотров)
Dvornick вне форума
Старый 19.09.2008, 22:46   #8
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Чтобы в УЖЕ ИМЕЮЩЕЙСЯ таблице с конкретным количеством колонок внтури неё копировался ТЕКСТ из последней заполненной колонки в следующую по порядку.
Мож я чё не понял, но только что проверил, код от Serge_Bliznykov работает именно так, как Вы говорите, т.е ТЕКСТ из последней заполненной колонки копируется полностью в следующую по порядку.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума
Старый 19.09.2008, 23:03   #9
Dvornick
Пользователь
 
Регистрация: 18.09.2008
Сообщений: 15
По умолчанию

Цитата:
Мож я чё не понял, но только что проверил, код от Serge_Bliznykov работает именно так, как Вы говорите, т.е ТЕКСТ из последней заполненной колонки копируется полностью в следующую по порядку.
Блин, а что я тогда могу не так делать? Я просто бухаю эту кнопку на этот лист где есть таблица, причём не одна и при нажатии на кнопку создается новая пустая колонка, следом за последней
Может там что-то прописывать надо? Массив может прописать?
Dvornick вне форума
Старый 19.09.2008, 23:19   #10
Dvornick
Пользователь
 
Регистрация: 18.09.2008
Сообщений: 15
По умолчанию

Ещё раз попробовал -никак! Делаю так: создаю через "эл упр" кнопку, помещаю её на любое место листа, правой кнопкой мыши по этой кнопке, выбираю "исх текст", в открывшемся окне между имеющихся двух строк вставляю это:

Dim LastRow%, LastCol%
LastCol = ThisWorkbook.ActiveSheet.UsedRange. Column + ThisWorkbook.ActiveSheet.UsedRange. Columns.Count - 1
LastRow = ThisWorkbook.ActiveSheet.UsedRange. Row + ThisWorkbook.ActiveSheet.UsedRange. Rows.Count - 1

Range(Cells(1, LastCol), Cells(LastRow, LastCol)).Copy Cells(1, LastCol + 1)

И нажимаю вверху на "кнопку play", закрываю окно... жму кнопку получаю описанный мной результат.
Dvornick вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование по сети Briz Фриланс 9 15.12.2009 20:40
Копирование *.exe вручную v01umE Общие вопросы C/C++ 4 06.07.2008 20:06
Копирование ryton SQL, базы данных 2 30.06.2008 09:32
Копирование файлов Artificial Помощь студентам 5 05.06.2008 18:42
Копирование КАТАЛОГА Рустам Общие вопросы Delphi 10 13.10.2007 12:22