|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2019 - Заполнение ячеек содержимым других ячеек (Excel) |
|
2019 - Заполнение ячеек содержимым других ячеек (Excel)
|
Пользователь Сообщения: 87 |
Профиль | Отправить PM | Цитировать Имеется такая задача
На листе xlsx-файла второй столбец пустой, а остальные заполнены содержимым (в каждой ячейке - своим). Мне необходимо чтобы при выделении любой ячейки (кроме принадлежащих ко второму столбцу) ее содержимое копировалось в свободную ячейку второго столбца в нисходящем порядке (кликов предполагается много). Так же есть и другие листы с заполненными ячейками. Необходимо чтобы клики на их ячейки копировали их содержание во второй столбец первого листа на общих основаниях согласно единой последовательности кликов. Задача вызвана потребностью организовать быстрый разбор файлов из папки загрузок в папки файлохранилища. Если можно прошу помочь с макросом |
|
Отправлено: 21:39, 06-01-2024 |
Динохромный Сообщения: 698
|
Профиль | Отправить PM | Цитировать ruslaw, попробуйте код ниже.
В тексте коде нужно поменять две вещи: Заменить "Лист1" на реальное название вашего листа, и заменить " | " на реальный разделитель (т.е. если в одну ячейку скопировано несколько значений, они будут разделены знаком | и пробелами, если это не требуется, замените на пустую строку "". Код нужно скопировать в модуль каждого листа, с которым работаете (в редакторе щелкнуть на иконке листа, с которым работаете). На других листах второй столбец также игнорируется, если это не нужно, удалите в экземпляре кода с этого листа Or Target.Column = 2 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Const strName As String = "Лист1" 'Имя листа, на который будет выполняться копирование Const strDelim As String = " | " 'разделитель названий внутри ячейки, можно убрать содержимое между кавычками If IsEmpty(Target.Cells(1, 1)) Or Target.Column = 2 Then Exit Sub If IsEmpty(ThisWorkbook.Worksheets.Item(strName).Cells(Target.Row, 2)) Then ThisWorkbook.Worksheets.Item(strName).Cells(Target.Row, 2).Value = Target.Cells(1, 1).Value Else ThisWorkbook.Worksheets.Item(strName).Cells(Target.Row, 2).Value = ThisWorkbook.Worksheets.Item(strName).Cells(Target.Row, 2).Value & strDelim & Target.Cells(1, 1).Value End If End Sub |
------- Отправлено: 22:00, 06-01-2024 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Спасибо.
Но у меня такая проблема: В первой колонке в ячейках стоят имена файлов. И мне надо во вторую колонку поместить полные имена папок, расположенные в других ячейках, чтобы потом приготовить из этих двух колонок код для перемещения файлов в нужные мне папки. Ваш код помещает эти имена папок в ячейку второй колонки с тем же номером, что и у исходной (выделенной) ячейки, просто дублирует содержимое по горизонтали. А мне нужно чтобы какую бы ячейку я ни выделил (кроме 1 и 2 столбцов) она дублировалась бы в верхнюю свободную ячейку второго столбца. Так я получу соответствие имен файлов в первом столбце и папок во втором, куда я хочу переместить файлы, указанные в ячейках первого. |
Отправлено: 01:18, 07-01-2024 | #3 |
Динохромный Сообщения: 698
|
Профиль | Отправить PM | Цитировать ruslaw, попробуйте так:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Const strName As String = "Лист1" 'Имя листа, на который будет выполняться копирование If IsEmpty(Target.Cells(1, 1)) Or Target.Column < 3 Then Exit Sub Target.Cells(1, 1).Interior.ColorIndex = 6 'выделяет ячейки желтым цветом, если не нужно - удалить строку If IsEmpty(ThisWorkbook.Worksheets.Item(strName).Cells(60000, 2).End(xlUp)) Then ThisWorkbook.Worksheets.Item(strName).Cells(60000, 2).End(xlUp).Value = Target.Cells(1, 1).Value Else ThisWorkbook.Worksheets.Item(strName).Cells(60000, 2).End(xlUp).Offset(1, 0).Value = Target.Cells(1, 1).Value End If End Sub |
------- Отправлено: 09:43, 07-01-2024 | #4 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Огромнейшее спасибо! Все отлично работает!
|
|
Отправлено: 11:07, 07-01-2024 | #5 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Еще просьба.
Можно ли сделать такой макрос который к каждой ячейке добавлял бы комментарий с тем же содержанием что и в этой ячейке. Так я смог бы видеть содержание ячеек с длинным содержимым, не нажимая на них. |
Отправлено: 13:18, 07-01-2024 | #6 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2013 - [решено] Excel авто заполнение ячеек | Alexander_88 | Microsoft Office (Word, Excel, Outlook и т.д.) | 1 | 02-10-2015 02:43 | |
2003/XP/2000 - блокировка ячеек в excel | Almest | Microsoft Office (Word, Excel, Outlook и т.д.) | 4 | 06-06-2013 13:39 | |
Разное - Заполнение ячеек из формы макроса Excel | zion87 | Microsoft Office (Word, Excel, Outlook и т.д.) | 7 | 03-04-2013 22:38 | |
2007 - Содержимое ячеек Excel делается невидимым | Chydak | Microsoft Office (Word, Excel, Outlook и т.д.) | 4 | 08-12-2011 09:57 | |
2003/XP/2000 - Excel самопроизвольно меняет цвета ячеек | Tbomb | Microsoft Office (Word, Excel, Outlook и т.д.) | 1 | 14-10-2010 21:08 |
|