Цитата:
Сообщение от ПРАКТИК
Правда, пару книжечек приобрёл, хотел каких ни будь фолиантов, но пришлось смириться с "букварями"...
|
Хороший букварь
здесь.
Цитата:
Сообщение от ПРАКТИК
Андрей, но всё равно будет пара вопросов.
(ByVal Target As Range) - каков смысл и назначение этой фразы?
Dim rng As Range: Set lbh = [B2:B4] - что есть rng и lbh?
|
Поздновато, но... попробую.
1 строка
Private Sub Worksheet_Change(ByVal Target As Range)
Private - макрос (программа, переменные и т.д.) действуют только в пределах данного листа (в отличие от Public - для всех, глобально)
Sub - начало программы
Worksheet_Change - Название программы, можешь хоть "горшком" назвать, только чтобы начиналось с буквы, содержала буквы и цифры без пробелов, из знаков препинания допускается только знак подчёркивания. Здесь стандартное название формируемое самим экселем, если пишешь программу, реагирующим на изменение в листе (превод: рабочий лист_изменить)
(ByVal Target As Range) - не забивай пока голову
2 строка
Dim rng As Range: Set lbh = [B2:B4] - установить дипазон ячеек на листе, изменения в котором запускают выполнение программы (здесь я, кстати ошибся некритично - переделывал-недоделал - вместо
rng надо
lbh - это любое имя, которым хочешь назвать данный диапазон ячеек, хоть Длина_Ширина_Высота назови)
3 строка
If Not Intersect(lbh, Target) Is Nothing Then - если ячейка ввода не пересекается с диапазоном lbh, то ничего не делать, иначе же ...
(если будешь происваивать своё имя диапазону, то и тут надо вместо lbh, подставить, например, Длина_Ширина_Высота)
Дальше пошли команды программы. Чё-то там крутим, меняем...
... и в конце всех построений витрин
End If - окончание условия If из 3
строки
End Sub - окончание программы из
1 строки. Стоп - всё выполнено.
***
Короче, буде такая задачка надо (тупо, пока) скопировать болванку в модуль листа, заменяя выделенное жирным шрифтом на своё:
Цитата:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ИМЯ As Range: Set ИМЯ= [B2:B4]
If Not Intersect(ИМЯ, Target) Is Nothing Then
(действия макроса) ...
End If
End Sub
|
***
Цитата:
Сообщение от ПРАКТИК
А вообще, подозреваю, что не с того начал... от частного к общему, от примеров к теории... наверное нужно наоборот....
|
А вот тут-то и не соглашусь с Вами, батенька
Лучшее обучение, на мой взгляд, когда решаются прикладные задачи. Системность должна приходить потом и постепенно (ну, чтобы не лезть в дебри методологии обучения, наступлю на горло этой песне).
Так вот, обучение/научение лучше на конкретике, чем абстрактно.
Надо рисовать прямоугольник - роем его параметры. Но чтобы знать как они хоть называются надо читать буквари (хотя бы те части, где говорится о прямоугольниках). И задачу свою больше вижу не научении программированию, а в
научении методам самообучения. Что делать, если не знаешь, где добыть знания, как добыть знания, как применить знания, как их систематизировать, как сложить из них целостную картину и развить её...
Хвост трубой, точно знаю - ты на верном пути! И заветный расчёт витрины с графикой - не за горами.
А пока, пошёл баиньки, продолжение будет принепременно.