копирование активной строки в другую книгу с условием
Raven2009
Дата: Воскресенье, 20.10.2019, 23:41 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Добрый день. Просьба помочь. Есть 2 книги с таблицами. Подскажите пожалуйста, как можно реализовать следующее?: - в книге enter в таблице пользователь щелкает по нужной строке (т.е. делает нужную строку активной) и нажимает кнопку - по нажатию кнопки значения выделенной строки: - копируются в таблицу книги exit - но без значений 4-го столбца Комментарий (такого столбца в exit нет), т.е. 4ый столбец нужно пропустить... - каждое копирование из книги enter происходит на следующую свободную строку книги exit
Добрый день. Просьба помочь. Есть 2 книги с таблицами. Подскажите пожалуйста, как можно реализовать следующее?: - в книге enter в таблице пользователь щелкает по нужной строке (т.е. делает нужную строку активной) и нажимает кнопку - по нажатию кнопки значения выделенной строки: - копируются в таблицу книги exit - но без значений 4-го столбца Комментарий (такого столбца в exit нет), т.е. 4ый столбец нужно пропустить... - каждое копирование из книги enter происходит на следующую свободную строку книги exit Raven2009
К сообщению приложен файл:
test1.rar
(20.5 Kb)
Ответить
Сообщение Добрый день. Просьба помочь. Есть 2 книги с таблицами. Подскажите пожалуйста, как можно реализовать следующее?: - в книге enter в таблице пользователь щелкает по нужной строке (т.е. делает нужную строку активной) и нажимает кнопку - по нажатию кнопки значения выделенной строки: - копируются в таблицу книги exit - но без значений 4-го столбца Комментарий (такого столбца в exit нет), т.е. 4ый столбец нужно пропустить... - каждое копирование из книги enter происходит на следующую свободную строку книги exit Автор - Raven2009 Дата добавления - 20.10.2019 в 23:41
doober
Дата: Понедельник, 21.10.2019, 13:32 |
Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 971
Репутация:
333
±
Замечаний:
0% ±
Excel 2010
Здравствуйте. Считаем, что файл exit открыт или сами с ним определитесь.[vba]Код
Sub CCopy() ' считаем, что файл exit.xlsx открыт Dim exit_ As Worksheet rw = ActiveCell.Row Set exit_ = Workbooks("exit.xlsx").Worksheets(1) LastRow = exit_.Cells(exit_.Rows.Count, 1).End(xlUp).Row + 1 Union(Range("A" & rw & ":C" & rw), Range("e" & rw & ":f" & rw)).Copy exit_.Cells(LastRow, 1) End Sub
[/vba]
Здравствуйте. Считаем, что файл exit открыт или сами с ним определитесь.[vba]Код
Sub CCopy() ' считаем, что файл exit.xlsx открыт Dim exit_ As Worksheet rw = ActiveCell.Row Set exit_ = Workbooks("exit.xlsx").Worksheets(1) LastRow = exit_.Cells(exit_.Rows.Count, 1).End(xlUp).Row + 1 Union(Range("A" & rw & ":C" & rw), Range("e" & rw & ":f" & rw)).Copy exit_.Cells(LastRow, 1) End Sub
[/vba] doober
Ответить
Сообщение Здравствуйте. Считаем, что файл exit открыт или сами с ним определитесь.[vba]Код
Sub CCopy() ' считаем, что файл exit.xlsx открыт Dim exit_ As Worksheet rw = ActiveCell.Row Set exit_ = Workbooks("exit.xlsx").Worksheets(1) LastRow = exit_.Cells(exit_.Rows.Count, 1).End(xlUp).Row + 1 Union(Range("A" & rw & ":C" & rw), Range("e" & rw & ":f" & rw)).Copy exit_.Cells(LastRow, 1) End Sub
[/vba] Автор - doober Дата добавления - 21.10.2019 в 13:32
Raven2009
Дата: Суббота, 26.10.2019, 19:32 |
Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Считаем, что файл exit открыт или сами с ним определитесь.
спасибо вам большое! А если не открывать его, а через открытие к нему обратиться, будет работать? примерно так (копировал из другого кода) [vba]Код
Set DestinW= Workbooks.Open("\\d\file1.xlsx")
[/vba]
Считаем, что файл exit открыт или сами с ним определитесь.
спасибо вам большое! А если не открывать его, а через открытие к нему обратиться, будет работать? примерно так (копировал из другого кода) [vba]Код
Set DestinW= Workbooks.Open("\\d\file1.xlsx")
[/vba]Raven2009
Ответить
Сообщение Считаем, что файл exit открыт или сами с ним определитесь.
спасибо вам большое! А если не открывать его, а через открытие к нему обратиться, будет работать? примерно так (копировал из другого кода) [vba]Код
Set DestinW= Workbooks.Open("\\d\file1.xlsx")
[/vba]Автор - Raven2009 Дата добавления - 26.10.2019 в 19:32
Raven2009
Дата: Суббота, 26.10.2019, 21:52 |
Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
излишнее цитирование удалено Я попробовал код с условием уже открытого файла. Он почему то копирует не во вторую, а на 3-ю строку и далее. Таблицы там динамические (умные). Наверно из-за этого?
излишнее цитирование удалено Я попробовал код с условием уже открытого файла. Он почему то копирует не во вторую, а на 3-ю строку и далее. Таблицы там динамические (умные). Наверно из-за этого?Raven2009
Сообщение отредактировал Pelena - Суббота, 26.10.2019, 23:19
Ответить
Сообщение излишнее цитирование удалено Я попробовал код с условием уже открытого файла. Он почему то копирует не во вторую, а на 3-ю строку и далее. Таблицы там динамические (умные). Наверно из-за этого?Автор - Raven2009 Дата добавления - 26.10.2019 в 21:52
Pelena
Дата: Суббота, 26.10.2019, 23:18 |
Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 19405
Репутация:
4555
±
Замечаний:
±
Excel 365 & Mac Excel
Попробуйте так Теоретически будет, но надо ещё проверить, если файл уже открыт, то заново открывать не надо, иначе потеряются изменения.Как проверить, открыта ли книга
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Попробуйте так Теоретически будет, но надо ещё проверить, если файл уже открыт, то заново открывать не надо, иначе потеряются изменения.Как проверить, открыта ли книга Автор - Pelena Дата добавления - 26.10.2019 в 23:18
Raven2009
Дата: Воскресенье, 27.10.2019, 00:06 |
Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Спасибо вам)) по идее планируется книгу открывать, добавлять запись и закрывать с сохранением, но предварительная проверка все же не помешает))
Спасибо вам)) по идее планируется книгу открывать, добавлять запись и закрывать с сохранением, но предварительная проверка все же не помешает))Raven2009
Сообщение отредактировал Raven2009 - Воскресенье, 27.10.2019, 00:07
Ответить
Сообщение Спасибо вам)) по идее планируется книгу открывать, добавлять запись и закрывать с сохранением, но предварительная проверка все же не помешает))Автор - Raven2009 Дата добавления - 27.10.2019 в 00:06
Raven2009
Дата: Воскресенье, 27.10.2019, 19:00 |
Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Я извиняюсь, подскажите пожалуйста. Я дополнил код, чтобы макрос открывал файл exit.xlsx. Он его открывает, но почему то запись теперь не добавляет...(( что не так теперь?
Я извиняюсь, подскажите пожалуйста. Я дополнил код, чтобы макрос открывал файл exit.xlsx. Он его открывает, но почему то запись теперь не добавляет...(( что не так теперь? Raven2009
Ответить
Сообщение Я извиняюсь, подскажите пожалуйста. Я дополнил код, чтобы макрос открывал файл exit.xlsx. Он его открывает, но почему то запись теперь не добавляет...(( что не так теперь? Автор - Raven2009 Дата добавления - 27.10.2019 в 19:00
Raven2009
Дата: Понедельник, 28.10.2019, 15:06 |
Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Так и не нашел решения...
Ответить
Сообщение Так и не нашел решения... Автор - Raven2009 Дата добавления - 28.10.2019 в 15:06
Pelena
Дата: Понедельник, 28.10.2019, 16:55 |
Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 19405
Репутация:
4555
±
Замечаний:
±
Excel 365 & Mac Excel
Когда открывается книга, активным становится уже другой лист, поэтому когда копируем, к Range надо обращаться с явным указанием листа
Когда открывается книга, активным становится уже другой лист, поэтому когда копируем, к Range надо обращаться с явным указанием листа Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Когда открывается книга, активным становится уже другой лист, поэтому когда копируем, к Range надо обращаться с явным указанием листа Автор - Pelena Дата добавления - 28.10.2019 в 16:55
Raven2009
Дата: Понедельник, 28.10.2019, 19:22 |
Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Спасибо вам!!!)) Всего лишь указать Activesheet... Гениальное просто))) Забыл совсем, что копирование должно быть без УФ, просто значения копировать нужно... В большом рабочем файле (не в этом) скопировались условные форматирования строки. Как сделать, чтобы только значения активной строки копировались?
Спасибо вам!!!)) Всего лишь указать Activesheet... Гениальное просто))) Забыл совсем, что копирование должно быть без УФ, просто значения копировать нужно... В большом рабочем файле (не в этом) скопировались условные форматирования строки. Как сделать, чтобы только значения активной строки копировались? Raven2009
Ответить
Сообщение Спасибо вам!!!)) Всего лишь указать Activesheet... Гениальное просто))) Забыл совсем, что копирование должно быть без УФ, просто значения копировать нужно... В большом рабочем файле (не в этом) скопировались условные форматирования строки. Как сделать, чтобы только значения активной строки копировались? Автор - Raven2009 Дата добавления - 28.10.2019 в 19:22
Pelena
Дата: Понедельник, 28.10.2019, 19:38 |
Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 19405
Репутация:
4555
±
Замечаний:
±
Excel 365 & Mac Excel
Тогда лучше не копировать, а просто присвоить значения
Тогда лучше не копировать, а просто присвоить значения Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Тогда лучше не копировать, а просто присвоить значения Автор - Pelena Дата добавления - 28.10.2019 в 19:38
Raven2009
Дата: Понедельник, 28.10.2019, 19:43 |
Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
просто присвоить значения
через равенство?? Где то видел такое решение, но у меня значения одного столбца посередине не нужны. Как это в моем случае делать?
просто присвоить значения
через равенство?? Где то видел такое решение, но у меня значения одного столбца посередине не нужны. Как это в моем случае делать?Raven2009
Сообщение отредактировал Raven2009 - Понедельник, 28.10.2019, 19:45
Ответить
Сообщение просто присвоить значения
через равенство?? Где то видел такое решение, но у меня значения одного столбца посередине не нужны. Как это в моем случае делать?Автор - Raven2009 Дата добавления - 28.10.2019 в 19:43
Pelena
Дата: Понедельник, 28.10.2019, 19:54 |
Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 19405
Репутация:
4555
±
Замечаний:
±
Excel 365 & Mac Excel
Примерно так можно, если столбцов всего пять [vba]Код
With enter_ oTbl_exit.DataBodyRange.Cells(LastRow, 1) = .Range("A" & rw).Value oTbl_exit.DataBodyRange.Cells(LastRow, 2) = .Range("B" & rw).Value oTbl_exit.DataBodyRange.Cells(LastRow, 3) = .Range("C" & rw).Value oTbl_exit.DataBodyRange.Cells(LastRow, 4) = .Range("E" & rw).Value oTbl_exit.DataBodyRange.Cells(LastRow, 5) = .Range("F" & rw).Value End With
[/vba]
Примерно так можно, если столбцов всего пять [vba]Код
With enter_ oTbl_exit.DataBodyRange.Cells(LastRow, 1) = .Range("A" & rw).Value oTbl_exit.DataBodyRange.Cells(LastRow, 2) = .Range("B" & rw).Value oTbl_exit.DataBodyRange.Cells(LastRow, 3) = .Range("C" & rw).Value oTbl_exit.DataBodyRange.Cells(LastRow, 4) = .Range("E" & rw).Value oTbl_exit.DataBodyRange.Cells(LastRow, 5) = .Range("F" & rw).Value End With
[/vba] Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Примерно так можно, если столбцов всего пять [vba]Код
With enter_ oTbl_exit.DataBodyRange.Cells(LastRow, 1) = .Range("A" & rw).Value oTbl_exit.DataBodyRange.Cells(LastRow, 2) = .Range("B" & rw).Value oTbl_exit.DataBodyRange.Cells(LastRow, 3) = .Range("C" & rw).Value oTbl_exit.DataBodyRange.Cells(LastRow, 4) = .Range("E" & rw).Value oTbl_exit.DataBodyRange.Cells(LastRow, 5) = .Range("F" & rw).Value End With
[/vba] Автор - Pelena Дата добавления - 28.10.2019 в 19:54
Raven2009
Дата: Понедельник, 28.10.2019, 20:08 |
Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
в том то и дело...) в рабочем файле их 50... И при этом где-то столбцов 5 не нужны, тоже как бы посередине... Но не подряд друг за другом...
в том то и дело...) в рабочем файле их 50... И при этом где-то столбцов 5 не нужны, тоже как бы посередине... Но не подряд друг за другом...Raven2009
Сообщение отредактировал Raven2009 - Понедельник, 28.10.2019, 20:09
Ответить
Сообщение в том то и дело...) в рабочем файле их 50... И при этом где-то столбцов 5 не нужны, тоже как бы посередине... Но не подряд друг за другом...Автор - Raven2009 Дата добавления - 28.10.2019 в 20:08
Pelena
Дата: Понедельник, 28.10.2019, 20:17 |
Сообщение № 15
Группа: Админы
Ранг: Местный житель
Сообщений: 19405
Репутация:
4555
±
Замечаний:
±
Excel 365 & Mac Excel
Немного короче [vba]Код
With enter_ oTbl_exit.DataBodyRange.Cells(LastRow, 1).Resize(, 3) = .Range("A" & rw).Resize(, 3).Value oTbl_exit.DataBodyRange.Cells(LastRow, 4).Resize(, 2) = .Range("E" & rw).Resize(, 2).Value End With
[/vba]
Немного короче [vba]Код
With enter_ oTbl_exit.DataBodyRange.Cells(LastRow, 1).Resize(, 3) = .Range("A" & rw).Resize(, 3).Value oTbl_exit.DataBodyRange.Cells(LastRow, 4).Resize(, 2) = .Range("E" & rw).Resize(, 2).Value End With
[/vba] Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Немного короче [vba]Код
With enter_ oTbl_exit.DataBodyRange.Cells(LastRow, 1).Resize(, 3) = .Range("A" & rw).Resize(, 3).Value oTbl_exit.DataBodyRange.Cells(LastRow, 4).Resize(, 2) = .Range("E" & rw).Resize(, 2).Value End With
[/vba] Автор - Pelena Дата добавления - 28.10.2019 в 20:17
Raven2009
Дата: Понедельник, 28.10.2019, 21:27 |
Сообщение № 16
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Спасибо! Все отлично пошло! Может напоследок подскажете, как написать, чтобы сохранялся файл и закрывался? А то с кодом в конце Wex.Close SaveChanges:=True не успевает файл открыться для добавления строки, а уже пытается запуститься этот код, соответственно выдает ошибку p.s. хотя, наверно это сетевой рабочий диск тормозит. На локальном компе работает все. Проверю еще, прошу прощения...
Спасибо! Все отлично пошло! Может напоследок подскажете, как написать, чтобы сохранялся файл и закрывался? А то с кодом в конце Wex.Close SaveChanges:=True не успевает файл открыться для добавления строки, а уже пытается запуститься этот код, соответственно выдает ошибку p.s. хотя, наверно это сетевой рабочий диск тормозит. На локальном компе работает все. Проверю еще, прошу прощения... Raven2009
Сообщение отредактировал Raven2009 - Понедельник, 28.10.2019, 21:31
Ответить
Сообщение Спасибо! Все отлично пошло! Может напоследок подскажете, как написать, чтобы сохранялся файл и закрывался? А то с кодом в конце Wex.Close SaveChanges:=True не успевает файл открыться для добавления строки, а уже пытается запуститься этот код, соответственно выдает ошибку p.s. хотя, наверно это сетевой рабочий диск тормозит. На локальном компе работает все. Проверю еще, прошу прощения... Автор - Raven2009 Дата добавления - 28.10.2019 в 21:27