Привет, можно ли делать такие вещи в excel-2007 vb ...

Например, пользователь выбирает ячейку или диапазон .... скажем, ячейка G13, теперь эта ячейка будет отображаться в верхнем левом углу листа (то есть там, где обычно A1 находится по умолчанию), в случае выбора диапазона в верхнем левом углу угол диапазона будет отображаться в верхнем левом углу листа ...

Заранее большое спасибо!

2
Mergen 21 Июл 2009 в 20:12
Вы хотите заполнить ячейку A1 текстом «G13» или хотите физически автоматически прокрутить электронную таблицу так, чтобы G13 находилась в верхнем левом углу?
 – 
Vicky
21 Июл 2009 в 20:22
Я имею в виду второй: "прокрутите таблицу так, чтобы G13 была вверху слева?"
 – 
Mergen
21 Июл 2009 в 21:59

2 ответа

Лучший ответ

Вот как вы можете переместить электронную таблицу в нужную ячейку:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False            
        ActiveWindow.ScrollColumn = Target.Column
        ActiveWindow.ScrollRow = Target.Row
    Application.EnableEvents = True
End Sub

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

2
Lance Roberts 22 Июл 2009 в 04:19

ALT + F11
Дважды щелкните ThisWorkbook в древовидной структуре слева (внутри VBA).
Вставьте этот код в класс WorkBook

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Cells(1, 1).Value = Selection.Cells(1).Address
End Sub

Измените Selection.Cells(1).Address на Selection.Cells(1).Value

Примечание. Это произойдет для всех листов в книге. Вы можете изменить его, чтобы он работал для определенного листа, добавив проверку с помощью экземпляра Sh в коде.

1
shahkalpesh 21 Июл 2009 в 20:27