Форум программистов, компьютерный форум, киберфорум
MS Office Excel
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 21.09.2013
Сообщений: 10

Перемещение на несколько столбцов одним нажатием

21.09.2013, 09:21. Показов 1832. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Подскажите пожалуйста как в excel можно при нажатии на клавиатуре кнопки "->" перемещаться не на один столбец, а, например, на 5?

Пример - курсор находится на ячейке столбца D, я нажимаю на клавиатуре стрелку "->" и необходимо чтобы курсор переместился на 5 столбцов вправо - на соответствующую ячейку столбца I
Как это сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.09.2013, 09:21
Ответы с готовыми решениями:

Интернет одним нажатием
Есть ли в вин10 способ чтоб интернет подключался и отключался одним нажатием иконки, или хотяб как в вин7. А то задолбало кучу кнопок...

Запуск telnet одним нажатием клавиши
В силу специфики работы, очень часто приходится телнетится к различному оборудованию. Порядком достало без конца открывать cmd, запускать...

Заполнение нескольких Label одним нажатием кнопки
Пишу код и не как не могу додуматься до того чтобы сделать так, когда при нажатии на кнопку каждый раз заполнять лайблы пока все они не...

2
188 / 22 / 1
Регистрация: 20.09.2013
Сообщений: 65
21.09.2013, 12:39
Скройте промежуточные столбцы.
0
617 / 242 / 16
Регистрация: 31.07.2013
Сообщений: 376
21.09.2013, 13:01
Цитата Сообщение от djaba2012_1 Посмотреть сообщение
курсор находится на ячейке столбца D, я нажимаю на клавиатуре стрелку "->" и необходимо чтобы курсор переместился на 5 столбцов вправо - на соответствующую ячейку столбца I
Как это сделать?
Написать соответствующий макрос несложно:

Visual Basic
1
2
3
Sub MoveRight()
    ActiveCell.Offset(0, 5).Activate
End Sub
Вот повесить его именно на клавишу "->" куда сложнее (если вообще возможно стандартными средствами). Но можно назначить ему сочетание Ctrl+(Shift+)буква.

Или использовать
сложное решение

Отслеживание нажатий клавиш запускается процедурой StartKeyWatch(), выход – Escape, смещения указываются в Left/Up/Right/DownOffset.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
Option Explicit
 
Private Type POINTAPI
    x As Long
    y As Long
End Type
 
Private Type MSG
    hwnd As Long
    Message As Long
    wParam As Long
    lParam As Long
    time As Long
    pt As POINTAPI
End Type
 
Private Declare Function WaitMessage Lib "user32" () As Long
 
Private Declare Function PeekMessage Lib "user32" _
Alias "PeekMessageA" _
(ByRef lpMsg As MSG, ByVal hwnd As Long, _
ByVal wMsgFilterMin As Long, _
ByVal wMsgFilterMax As Long, _
ByVal wRemoveMsg As Long) As Long
 
Private Declare Function TranslateMessage Lib "user32" _
(ByRef lpMsg As MSG) As Long
 
Private Declare Function PostMessage Lib "user32" _
Alias "PostMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long
 
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
 
Private Const WM_KEYDOWN As Long = &H100
Private Const PM_REMOVE  As Long = &H1
Private Const WM_CHAR    As Long = &H102
Private bExitLoop As Boolean
 
Private Const LeftKey As Long = 37
Private Const UpKey As Long = 38
Private Const RightKey As Long = 39
Private Const DownKey As Long = 40
 
Private Const LeftOffset As Long = 3
Private Const UpOffset As Long = 2
Private Const RightOffset As Long = 5
Private Const DownOffset As Long = 4
 
Sub StartKeyWatch()
 
    Dim msgMessage As MSG
    Dim bCancel As Boolean
    Dim iKeyCode As Integer
    Dim lXLhwnd As Long
 
    On Error GoTo handleCancel:
    Application.EnableCancelKey = xlErrorHandler
    bExitLoop = False
    lXLhwnd = FindWindow("XLMAIN", Application.Caption)
    Do
        WaitMessage
        If PeekMessage(msgMessage, lXLhwnd, WM_KEYDOWN, WM_KEYDOWN, PM_REMOVE) Then
            iKeyCode = msgMessage.wParam
            TranslateMessage msgMessage
            PeekMessage msgMessage, lXLhwnd, WM_CHAR, WM_CHAR, PM_REMOVE
            If iKeyCode = vbKeyBack Then SendKeys "{BS}"
            If iKeyCode = vbKeyReturn Then SendKeys "{ENTER}"
            bCancel = True
            Sheet_KeyPress ByVal msgMessage.wParam, ByVal iKeyCode, ByVal Selection, bCancel
            If bCancel = False Then
                PostMessage lXLhwnd, msgMessage.Message, msgMessage.wParam, 0
            End If
        End If
        DoEvents
    Loop Until bExitLoop
    
handleCancel:
If Err = 18 Then
    bExitLoop = True
End If
 
End Sub
 
Private Sub Sheet_KeyPress _
(ByVal KeyAscii As Integer, ByVal KeyCode As Integer, _
ByVal Target As Range, Cancel As Boolean)
 
    Select Case KeyAscii
    Case LeftKey
        If ActiveCell.Column > LeftOffset Then
            ActiveCell.Offset(0, -LeftOffset).Activate
        End If
    Case UpKey
        If ActiveCell.Row > UpOffset Then
            ActiveCell.Offset(-UpOffset, 0).Activate
        End If
    Case RightKey
        ActiveCell.Offset(0, RightOffset).Activate
    Case DownKey
        ActiveCell.Offset(DownOffset, 0).Activate
    Case Else
        Cancel = False
    End Select
 
End Sub


Исходник взят отсюда: Custom Worksheet KeyPress Event
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.09.2013, 13:01
Помогаю со студенческими работами здесь

как послать 2 формы одним нажатием на клавишу?
как послать 2 формы одним нажатием на клавишу? в одной форме текстовые поля, в другой прикрепленный файл. выглядет так: ...

Одним нажатием открыть одну форму и закрыть другую
Всем привет. Бью себя ушами по щекам, но извините, не нашёл этой темы на форуме. В общем, я жутко туплю, но не могу понять, как...

Обновить содержимое формы одним нажатием кнопки на клавиатуре
Работаю с ВДЕ, локальное приложение на стареньком компе. На форму выводится содержимое таблицы, в объекты типа Edit, Combox, RadioGroup и...

Перемещение объекта нажатием клавиш
хедер #ifndef BULLET_H #define BULLET_H #include <QWidget> class Bullet : public QWidget { Q_OBJECT public:

Одним нажатием кнопки запустить mp3 и соответствующий вордовский файл
Вопрос важный,ибо мучаюсь уже года 2. Как можно одним нажатием кнопки на иконку запустить имеющийся на HD mp3 файл (можно даже конкретный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru