Я записываю требования того, что я хочу сделать, используя макрос в Excel:
- У меня есть рабочая тетрадь с 4 листами:
SourceSheet, где я сохраняю свою базу данных, TargetSheet, куда я хочу отправить некоторые продукты базы данных для выполнения некоторых вычислений, таблицу результатов и InfoSheet.
- Если пользователь дважды щелкает ячейку SourceSheet, которая принадлежит
столбец А, например A8, затем данные ячеек от A8 до F8 должны быть скопированы в ячейки C18-H18 таблицы TargetSheet, а ячейка J8 таблицы sourceSheet должна быть скопирована в ячейку B18 таблицы TargetSheet. Если ячейки с B18 по H18 таблицы TargetSheet заняты, то данные должны быть скопированы на одну строку ниже.
- Если пользователь дважды щелкает в ячейке SourceSheet, которая не
принадлежат колонке А ничего не должно случиться.
- Если пользователь дважды щелкнет на любом другом листе, больше ничего не произойдет.
У меня проблемы с тем, что написано жирным шрифтом выше. Я знаю, что должен обязательно использовать следующее:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
End Sub
Поэтому я попытался что-то вроде следующего в SourceSheet (но безуспешно :()
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Range("ActiveCell:(ActiveCell.Offset(0, 5))").Copy Worksheets("TargetSheet ").Range("C2:G2")
ActiveCell.Offset(0, 9).Copy Worksheets("TargetSheet ").Range("B18")
End Sub
Я новичок в VBA, поэтому любая помощь будет оценена. Заранее спасибо.