Перейти к публикации

Макрос. Хочу создать


Рекомендованные сообщения

В модуле.

дома создавал hide/show в модуле, писал имя формы-точку-а он ничего не предлагал выбрать. Просто вспоминая бейсик, там в свойствах проекта можно было выбрать первую форму, в дельфи каждую под форму нужно декларировать чтоб увидеть. Тут как-то всё еще проще.

На работе всё получилось.

Ссылка на сообщение
Поделиться на других сайтах


Да, надо показывать(show) нужную в данный момент форму, а остальные прятать (hide). Форма которая должна появляться первой "прописывается" в модуле

Насколько я понял модальных форм у вас не будет.

Ссылка на сообщение
Поделиться на других сайтах

дома создавал hide/show в модуле, писал имя формы-точку-а он ничего не предлагал выбрать. Просто вспоминая бейсик, там в свойствах проекта можно было выбрать первую форму, в дельфи каждую под форму нужно декларировать чтоб увидеть. Тут как-то всё еще проще.

На работе всё получилось.

hide/show - это только спрятать/показать, а требуется еще и загрузка формы! :

---

This example uses the Load statement to load a Form object. To try this example, paste the code into the Declarations section of a Form object, and then press F5 and click the Form object.

Sub Form_Click ()

Dim Answer, Msg ' Declare variable.

Unload Form1 ' Unload form.

Msg = "Form1 has been unloaded. Choose Yes to load and "

Msg = Msg & "display the form. Choose No to load the form "

Msg = Msg & "and leave it invisible."

Answer = MsgBox(Msg, 4) ' Get user response.

If Answer = 6 Then ' Evaluate answer.

Show ' If Yes, show form.

Else

Load Form1 ' If No, just load it.

Msg = "Form1 is now loaded. Choose OK to display it."

MsgBox Msg ' Display message.

Show ' Show form.

End If

End Sub

---

Ссылка на сообщение
Поделиться на других сайтах

hide/show - это только спрятать/показать, а требуется еще и загрузка формы! :

Для полноты картины.

При использовании метода Show, если форма не была загружена, форма всегда сначала автоматом загружается, а потом отображается. То есть, как бы вполняется Load + Show.

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

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

Всем привет.

Решил понять работу макросов (потребность в создании макроса).

Надо считать строку, и дописать в нее какую-то инфо, НО с сохранением старой, в определенном порядке.

Для примера выбрал обозначение крепежа по ГОСТ.

Поясню:

Есть запись:

Болт М 6 х 8 ГОСТ 7798-70

Надо:

Болт М6-6gх8.58.016 ГОСТ7798-70

с учетом ненужных пробелов.

Макрос мне написал:

Range("C3").Select

ActiveCell.FormulaR1C1 = "'Болт М6-6gх8.58.016 ГОСТ7798-70"

Range("C4").Select

End Sub

Он действует только на эту строку и только эту форму записи.

Что делать дальше - :confused_1:

Посоветуйте книгу доступную для "чайника" для выполнения моей задачи, что-ли.

Ссылка на сообщение
Поделиться на других сайтах

Всем привет.

Решил понять работу макросов (потребность в создании макроса).

Надо считать строку, и дописать в нее какую-то инфо, НО с сохранением старой, в определенном порядке.

Для примера выбрал обозначение крепежа по ГОСТ.

Поясню:

Есть запись:

Болт М 6 х 8 ГОСТ 7798-70

Надо:

Болт М6-6gх8.58.016 ГОСТ7798-70

с учетом ненужных пробелов.

Макрос мне написал:

Range("C3").Select

ActiveCell.FormulaR1C1 = "'Болт М6-6gх8.58.016 ГОСТ7798-70"

Range("C4").Select

End Sub

Он действует только на эту строку и только эту форму записи.

Что делать дальше - :confused_1:

Посоветуйте книгу доступную для "чайника" для выполнения моей задачи, что-ли.

Приобретите одну из книг Гарнаева. Для начинающих самое то.
Ссылка на сообщение
Поделиться на других сайтах

Решил понять работу макросов (потребность в создании макроса).

Для этого придется научится разбираться в программировании в целом, вероятно вам надо будет сначала ознакомится с каким нибудь языком програмирования. Советую занятся бейсиком, т.к. он изначально разрабатывлася как язык для обучения и к тому же используется для написания макросов под MSOficce.

В интернете достаточно много статей и учебных пособий по нему с примерами и исходными кодами.

Ссылка на сообщение
Поделиться на других сайтах

В интернете достаточно много статей и учебных пособий по нему с примерами и исходными кодами.

Примеров подходящих не нашел, а так азы изучаю.

Некоторые моменты мне понятны, но вот мозгов немного не хватает.

Например как из 1 ячейки считать всю надпись, и дописать то, что надо только после определенной инфо, которая тоже меняется?

Ссылка на сообщение
Поделиться на других сайтах

Примеров подходящих не нашел, а так азы изучаю.

...

Это удивительно - примеров по VB - тысячи...

Посмотрите специализированные сайты по VB и VBA.

Например тут:

<noindex>http://bbs.vbstreets.ru/</noindex>

<noindex>http://www.sql.ru/forum/actualtopics.aspx?bid=22</noindex>

<noindex>http://www.google.ru/custom?hl=ru&inla...%E5%ED%ED%EE%EC</noindex>

Можно еще сделать поиск по фразе типа "VBA в Excel"...

Ссылка на сообщение
Поделиться на других сайтах

Например как из 1 ячейки считать всю надпись, и дописать то, что надо только после определенной инфо, которая тоже меняется?

Я опишу алгоритм словами а Вы уже сами переведети в программный код, заодно и потренеруетесь.

Во первых у вас должен быть массив "определенной инфо, которая тоже меняется" где перечисленны все возможные варианты - назовем его "Массив".

Берем надпись из ячейки

Смотрим есть ли вхождение в надпись элемента Массива (сначала первого, потом второго и так далее)

Если есть то

..................разделяем надпись на две части: первая -все что до вхождения, вторая - все остальное.

..................записываем в ячейку = первая часть + то что надо дописать + вторая часть

..................выходим

Если нету то переходим на след элемент массива.

Если все элементы масива перебраны то выходим.

Ссылка на сообщение
Поделиться на других сайтах

Я опишу алгоритм словами а Вы уже сами переведети в программный код, заодно и потренеруетесь.

Во первых у вас ...

Вот мой ранний пример(набросок), когда я этим занимался:

to_kobold.zip

Исполняемый файл: `XLS_v3_WS2007.exe`. Если какие ошибки будут, то надо иметь VB и запускать файл `SP_XLS_WS2007.vbp` (можно прямо из ТС).

А так, весь код в файлах " *.bas "...

Ну и желательно изучить работу этой программки в пошаговом режиме(`F8`).

А также изучить систему адресации к ячейкам таблицы Excel...

Например:

"Public Sub ExpExcel()

'======================================================= иициализация Excel

If xl Is Nothing Then

Set xl = CreateObject("Excel.Application")

Else

Set xl = GetObject(, "Excel.Application")

End If

xl.Visible = True

fileTMPL = "C:\Program Files\SolidWorks\data\templates\SpA4_1.xlt" ' проверка есть ли шаблон

'''' fileTMPL = "F:\Program Files\SolidWorks\data\templates\SpA4_1.xlt"

If Dir(fileTMPL) <> "" Then

Set wb = xl.Workbooks.Add(fileTMPL)

Else

Set wb = xl.Workbooks.Add

MsgBox "Файл шаблона не найден!", , "Error587!"

Set xl = Nothing

Exit Sub

End If ' нет шаблона - завершение работы!

On Error Resume Next

Set ws = wb.Worksheets("Sheet1")

Set ws = wb.Worksheets("Лист1")

'======================================================= иициализация Excel END

'======================================================= запсиь в Excel

ws.Range("B1").Value = "Comp Name from FM" <<<<====заполнение ячеек Excel`a

ws.Range("C1").Value = "Configuration"

ws.Range("D1").Value = "File of compоnent"

ws.Range("E1").Value = "Quantity"

ws.Range("F1").Value = "Pid"

............

"

Чтобы считать значение ячейки, нужно указать ее адрес (например "B1") и выполнить:

val1=ws.Range("B1").Value <= считывание

val1=val1+".Изменено!"

ws.Range("B1").Value = val1 <= заполнение ячейки...

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...