Я новичок в создании макросов в Excel и пытаюсь понять VBA, разбирая макросы, созданные другими.
Сейчас я пытаюсь создать своего рода таймер запуска / остановки, чтобы измерить, сколько времени тратится на разные проекты и на разные задачи внутри проектов.
Я хочу, чтобы мой пользователь выбрал проект (из выпадающего меню, созданного мной в A2) и тип задачи (также из выпадающего списка, расположенного в B2), а затем нажмите кнопку "Пуск" (все на листе 1). Затем будет запущен макрос, чтобы перенести эти два ввода в следующую доступную строку на листе 2 (столбцы A и B), а затем ввести текущую дату (столбец C) и текущее время (столбец D). Когда они закончили работать, они нажимают другую кнопку "Стоп" (также на листе 1), чтобы вставить текущее время в столбец Е листа 2 (та же строка, что и данные, использованные для "запуска").
Так что нужно:
Нажмите на кнопку Пуск
- Скопируйте значения A2 и B2 в следующую пустую строку на листе 2
- В столбце C этой же строки введите текущую дату.
- В столбце D той же строки введите текущее время
Нажмите на кнопку Стоп
В (в той же строке, что и другие только что добавленные данные) в столбце E введите текущее время
Или последняя строка D, которая имеет значение ввода текущего времени в E
Я пытался использовать это:
'Start Button
'Determine emptyRow
ActiveWorkbook.Sheets("Sheet2").Select
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
'Transfer information
Cells(emptyRow, 1).Value = A2.Value
Cells(emptyRow, 2).Value = B2.Value
Cells(emptyRow, 3).Value = Today().Value
Cells(emptyRow, 4).Value = Time().Value
(Разные макросы)
'Stop Button
'Make Sheet2 active
Sheet2.Activate
'Determine emptyRow
ActiveWorkbook.Sheets("Sheet").Select
emptyRow = WorksheetFunction.CountA(Range("E:E")) + 1
'Input Stop Time
Cells(emptyRow, 5).Value = Time().Value
И используя это:
'Start Button
Sheets(“Sheet1”).Select
Range(“A2”).Copy
Sheets(“Sheet2”).Select
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
ActiveSheet.Paste
Они не ошиблись, но и не сработали, так что я знаю, что что-то упустил.