Регулировка значений даты нажатием клавиши (Microsoft Excel)
Роберт отмечает, что в поле даты Quicken, если он нажимает кнопку «плюс» или «минус», дата увеличивается или уменьшается на один день. Он хотел бы создать такой же эффект в Excel.
Подойти к этой проблеме сложнее, чем можно было бы предположить, особенно в Excel. Поскольку действие должно выполняться при нажатии определенной клавиши (в данном случае клавиш «плюс» или «минус»), естественно предположить, что можно использовать метод OnKey. Рассмотрим следующие примеры:
Sub Start_OnKey() Application.OnKey "{+}", "Plus1" Application.OnKey "-", "Minus1" End Sub
Sub End_OnKey() Application.OnKey "{+}" Application.OnKey "-" End Sub
Sub Plus1() If IsDate(ActiveCell) And Not ActiveCell.HasFormula Then ActiveCell.Value = ActiveCell.Value + 1 End If End Sub
Sub Minus1() If IsDate(ActiveCell) And Not ActiveCell.HasFormula Then ActiveCell.Value = ActiveCell.Value - 1 End If End Sub
Согласно всей документации VBA, вышеуказанное должно работать нормально после запуска макроса Start_OnKey. Каждый раз, когда нажимается клавиша «плюс» или «минус», запускается соответствующая процедура для увеличения или уменьшения даты. Проблема в том, что он не будет работать в некоторых версиях Excel. Зачем? Потому что при нажатии клавиши «плюс» некоторые версии Excel, по-видимому, переводятся в специальный режим «ввода формулы», который обходит обычный буфер клавиатуры, на который полагается OnKey. Таким образом, нажатие клавиши «минус» при выделенной ячейке, содержащей дату, дает желаемый результат, нажатие клавиши «плюс» — нет.
Для тех версий Excel, где клавиша «плюс» является проблемой, единственное решение — изменить комбинации клавиш на что-то другое. Например, вы можете изменить нажатия клавиш так, чтобы Ctrl + u использовалось для увеличения даты, а Ctrl + d использовалось для уменьшения даты:
Sub Start_OnKey() Application.OnKey "^u", "Plus1" Application.OnKey "^d", "Minus1" End Sub
Sub End_OnKey() Application.OnKey "^u" Application.OnKey "^d" End Sub
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (7197) применим к Microsoft Excel 97, 2000, 2002 и 2003.