Как сделать ячейку активной в excel vba?
Содержание
Здравствуйте. Googl меня не понимает, может вы подскажите?
Есть форма календарь, которая запускается кнопкой.
При выборе даты в календаре, заполняется активная ячейка листа, а нужно что бы дата вставлялась в определенную.
Можно в продцедуре календаря изменить
ActiveCell.Value = Calendar1.Value
например на
= Calendar1.Value
но на листе несколько ячеек, в которые нужно вставлять разные даты.
Поскольку календарь вызывается кнопкой, то мне кажется логичным сделать несколько кнопок (для каждой ячейки с датой своя), которые будут вызывать одну и ту же форму календаря, но при этом активировать нужную ячейку, в которую будет вставлена дата с формы календаря.
Отображение формы запускается так
Private Sub CommandButton1_Click()
frmCalendar.Show
End Sub
в этот макрос нужно добавить строку, которая будет активировать нужную ячейку.
CodeNet
/
Языки программирования
/
Visual Basic
/
VBA
/
Excel VBA: Приёмы программирования
Как определить адрес активной ячейки.
Q: Как в макросе узнать и использовать текущее положение курсора (не мышиного, естественно)?
A:Очень просто! 🙂 ActiveCell.Row и ActiveCell.Column — покажут координаты активной ячейки.
Комментарий:
можно использовать BB-коды Максимальная длина комментария — 4000 символов. |
CodeNet ВКонтакте Яндекс Чтобы оставить комментарий, необходимо авторизоваться. Можно ввести логин и пароль, или авторизоваться через социальные сети. |
1.
90K
17 апреля 2013 года
Дмитрий Литвиненко
0 / / 17.04.2013
+1 / -1
17 апреля 2013, 22:49:22
Спасибо, освежило память))
2.
64K
28 сентября 2010 года
Vladlen70
0 / / 28.09.2010
+3 / -1
28 сентября 2010, 16:25:13
А не проще ли использовать — ActiveCell.Address или Activecell.AddressLocal?
Обращение к ячейке на листе Excel из кода VBA. Запись информации в ячейку. Чтение информации из ячейки. Очистка значения ячейки. Метод ClearContents объекта Range.
- Обращение к ячейке
- Запись информации в ячейку
- Чтение информации из ячейки
- Очистка значения ячейки
Обращение к ячейке
Допустим, у нас есть два открытых файла: «Книга1» и «Книга2», причем, файл «Книга1» активен и в нем находится исполняемый код VBA.
В общем случае при обращении к ячейке неактивной рабочей книги «Книга2» из кода файла «Книга1» прописывается полный путь:
Workbooks("Книга2.xlsm").Sheets("Лист2").Range("C5") Workbooks("Книга2.xlsm").Sheets("Лист2").Cells(5, 3)
Удобнее обращаться к ячейке через свойство рабочего листа Cells(номер строки, номер столбца), так как вместо номеров строк и столбцов можно использовать переменные. Обратите внимание, что при обращении к любой рабочей книге, она должна быть открыта, иначе произойдет ошибка. Закрытую книгу перед обращением к ней необходимо открыть.
Теперь предположим, что у нас в активной книге «Книга1» активны «Лист1» и ячейка на нем «A1». Тогда обращение к ячейке «A1» можно записать следующим образом:
ActiveCell Range("A1") Cells(1, 1)
Точно также можно обращаться и к другим ячейкам активного рабочего листа, кроме обращения ActiveCell, так как активной может быть только одна ячейка, в нашем примере — это ячейка «A1».
Если мы обращаемся к ячейке на неактивном листе активной рабочей книги, тогда необходимо указать этот лист:
Sheets("Лист3").Cells(2, 8)
Кроме того к ячейке на рабочем листе можно обращаться по ее индексу (порядковому номеру), который считается по расположению ячейки на листе слева-направо и сверху-вниз. Например, индекс ячеек в первой строке равен номеру столбца. Индекс ячеек во второй строке равен количеству ячеек в первой строке (которое равно общему количеству столбцов на листе — зависит от версии Excel) плюс номер столбца. Индекс ячеек в третьей строке равен количеству ячеек в двух первых строках плюс номер столбца. И так далее. Для примера, Cells(4) та же ячейка, что и Cells(1, 4). Используется такое обозначение редко, тем более, что у разных версий Excel может быть разным количество столбцов и строк на рабочем листе.
Запись информации в ячейку
Содержание ячейки определяется ее свойством — «Value», которое в VBA Excel является свойством по умолчанию и его можно явно не указывать. Записывается информация в ячейку при помощи оператора присваивания «=»:
Cells(2, 4).Value = 15 Cells(2, 4) = 15 Range("A1") = "Этот текст записываем в ячейку" ActiveCell = 28 + 10*36
Вместе с числами и текстом можно использовать переменные. Примеры здесь и ниже приведены для активного листа. Для неактивных листов дополнительно необходимо указывать имя листа, как в разделе «Обращение к ячейке».
Чтение информации из ячейки
Считать информацию из ячейки в переменную можно также при помощи оператора присваивания «=»:
Sub Test() Dim a1 As Integer, a2 As Integer, a3 As Integer Range("A3") = 6 Cells(2, 5) = 15 a1 = Range("A3") a2 = Cells(2, 5) a3 = a1 * a2 MsgBox a3 End Sub
Точно также можно обмениваться информацией между ячейками:
Cells(2, 2) = Range("A4")
Очистка значения ячейки
Очищается ячейка от значения с помощью метода ClearContents. Кроме того, можно присвоить ячейке значение нуля или пустой строки:
Cells(10, 2).ClearContents Range("D23") = 0 ActiveCell = ""