Как мне кодировать клавиши Shift + стрелка влево в VBA Excel, чтобы изменить диапазон? - PullRequest
0 голосов
/ 16 марта 2020

Я новичок в VBA и хотел создать программу VBA, чтобы автоматически блокировать один столбец слева от правой стороны, вот картинка, например: enter image description here

И сделайте так:

enter image description here

Я пытаюсь использовать смещения, чтобы сделать это, но я не уверен, какое значение я должен использовать, потому что значение (-1) оказывает на левый столбец, а (1) делает то же самое на правом.

вот мой код:


Sub Macro47()
'
' Macro47 Macro
'
'
Range("B2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    'Debug.Print ActiveCell.Address
    Range(Selection, Selection.Offset(0, -1)).Select


End Sub

1 Ответ

0 голосов
/ 16 марта 2020

Старайтесь избегать использования Select.

. С этим можно добиться того же, что и вы:

Sub Macro47()
'
' Macro47 Macro
'
'
Dim lCol As Long, lRow As Long
Dim ws As Worksheet
Dim rng As Range

Set ws = Thisworkbook.Worksheets("Sheet2") 'Set the Worksheet you want the Address of

With ws
    lCol = .Cells(1, .Columns.Count).End(xlToLeft).Column - 1 'Find right most Column, subtract 1 for the 'Total' Column
    lRow = .Cells(.Rows.Count, 2).End(xlUp).Row 'Find last row

    Set rng = .Range(.Cells(2, 1), .Cells(lRow, lCol))

    Debug.Print rng.Address
End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...