I wonder how would you assign VBA codes written on Excel VBA to a sort of procedure/programme or maybe dos related filepath, which you can directly without opening excel. In other word, i want to have a desktop icon i can stir up a vba code i assigned to.
asked Oct 6, 2012 at 11:07
7
You can do it easily.
Add the following content in a VBS file (e.g. example.vbs). This is only a text file that you can write using Notepad:
'Code should be placed in a .vbs file
Set objExcel = CreateObject("Excel.Application")
objExcel.Application.Run "'C:pathtomyexcelfilemyExcelMacroFile.xlsm'!MyModule.MyFunctionName"
objExcel.DisplayAlerts = False
objExcel.Application.Quit
Set objExcel = Nothing
Then you can double clic on the VBS file to execute it.
Source: http://wellsr.com/vba/2015/excel/run-macro-without-opening-excel-using-vbscript/
answered Oct 13, 2016 at 8:46
Julien KroneggJulien Kronegg
4,9231 gold badge46 silver badges60 bronze badges
3
If the VBA in the Excel macro doesn’t reference Excel objects, you can just copy the code into a text file and change the extension to .VBS. However, VB script doesn’t like it when you use types, just delete the «AS something» from your Dim statement.
I do this often to get the benefit of Intellisense, which I wouldn’t have using Notepad.
If my assumption is correct, then you probably want to change your tags to VB Scripting instead of Excel to get appropriate help.
answered Oct 6, 2012 at 15:07
Robert CoRobert Co
1,7158 silver badges14 bronze badges
If I understand that right, you can simply write VBS code in a text file and rename it to .vbs
(make sure file endings are visible in Windows). On doubleclick the file is executed by the Windows Scripting Host. VBS lacks some functionality of VBA but you can do a lot with CreateObject/GetObject.
answered Oct 6, 2012 at 11:56
KekuSemauKekuSemau
6,8214 gold badges25 silver badges34 bronze badges
1
Though the learning curve may be a bit steep, but you could consider using AutoHotKey. This allows you to create your own scripts and if so desired turn them into (rather large) .exe files. AutoHotKey is free!
answered Oct 7, 2012 at 9:45
Robert IlbrinkRobert Ilbrink
7,6982 gold badges22 silver badges31 bronze badges
write a cmd or ps1 that opens an excel and in that excel’s startup run your macro… and then when finished close it.
this can be a solution but you are probably doing something which is unnecessary in correct planned environments.
answered Oct 23, 2012 at 13:44
SerdarSerdar
1,4062 gold badges17 silver badges42 bronze badges
Открыть код vba, не запуская Excel, можно ли? |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
У меня есть код VBA, который вызывает мою процедуру при открытии этого Excel.
Sub WorkBook_Open()
Call Sheets("Result").main
End Sub
Меня беспокоит то, что основная функция будет отправлять электронную почту. Так что в будущем, если я захочу отредактировать этот Excel, как я могу открыть его, не вызывая вызов?
Сначала я хотел использовать командную строку для ежедневного запуска функции vba и автоматически отправлять этот отчет.
2018-01-10 16:39
3
ответа
Решение
- Откройте приложение Excel.
- Перейдите в Файл ~ Открыть или Файл ~ Недавние.
- Удерживайте Shift при открытии файла.
NB. Это не сработает, просто выбрав рабочую книгу Excel для открытия.
Вам нужно сначала открыть Excel, а затем открыть книгу.
Редактировать:
Меня беспокоит то, что основная функция будет отправлять электронную почту.
Не добавляйте свой код в Workbook_Open
событие, вместо этого добавьте его в событие нажатия кнопки — оно никогда не будет отправлять электронные письма, пока вы не нажмете кнопку.
2018-01-10 16:54
Вам не нужно сначала открывать Excel. Просто удерживайте нажатой клавишу Shift, дважды щелкнув файл .xlsm.
2022-11-14 20:31
Я нашел для себя следующие работы в Office 365 (возможно, и в других версиях Excel):
- Открывайте Excel напрямую, не щелкайте книгу дважды, чтобы запустить Excel
- Файл / Открыть / Обзор
- Перейдите к книге, которую хотите открыть, щелкните по ней одним щелчком мыши
- Щелкните раскрывающийся список рядом с «Открыть» и «Открыть в защищенном просмотре».
Если вы хотите продолжить редактирование на этом этапе, вам нужно будет щелкнуть «Разрешить редактирование» во всплывающем окне, которое должно появиться прямо под строкой меню. Когда я это делаю, у меня есть макросы, которые пытаются сразу же запустить, но не работают, и я могу редактировать VBA. YMMV есть.
2020-09-01 16:31
@Robert: Я попытался адаптировать ваш код с относительным путем и создал пакетный файл для запуска VBS.
VBS запускается и закрывается, но не запускает макрос… Любая идея о том, где проблема может быть?
Option Explicit
On Error Resume Next
ExcelMacroExample
Sub ExcelMacroExample()
Dim xlApp
Dim xlBook
Set xlApp = CreateObject("Excel.Application")
Set objFSO = CreateObject("Scripting.FileSystemObject")
strFilePath = objFSO.GetAbsolutePathName(".")
Set xlBook = xlApp.Workbooks.Open(strFilePath, "ExcelsCLIENTES.xlsb") , 0, True)
xlApp.Run "open_form"
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
Я удалил «Application.Quit», потому что мой макрос вызывает пользовательскую форму, заботясь об этом.
Приветствия
ИЗМЕНИТЬ
Я действительно отработал это, на всякий случай, когда кто-то хочет запустить пользовательскую форму «подобно» автономному приложению:
Проблемы, с которыми я столкнулся:
1 — Я не хотел использовать событие Workbook_Open, поскольку excel заблокирован только для чтения.
2 — Команда партии ограничена тем фактом, что (насколько мне известно) она не может вызвать макрос.
Сначала я написал макрос, чтобы запустить мою пользовательскую форму, скрывая приложение:
Sub open_form()
Application.Visible = False
frmAddClient.Show vbModeless
End Sub
Затем я создал vbs для запуска этого макроса (выполнение этого с относительным путем было сложным):
dim fso
dim curDir
dim WinScriptHost
set fso = CreateObject("Scripting.FileSystemObject")
curDir = fso.GetAbsolutePathName(".")
set fso = nothing
Set xlObj = CreateObject("Excel.application")
xlObj.Workbooks.Open curDir & "ExcelsCLIENTES.xlsb"
xlObj.Run "open_form"
И я, наконец, сделал пакетный файл для выполнения VBS…
@echo off
pushd %~dp0
cscript Add_Client.vbs
Обратите внимание, что в моем Userform_QueryClose
:
я также включил «Установить обратно в видимый»
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
ThisWorkbook.Close SaveChanges:=True
Application.Visible = True
Application.Quit
End Sub
В любом случае, спасибо за вашу помощь, и я надеюсь, что это поможет, если кому-то это понадобится
Содержание
- — Как открыть VBA, не открывая Excel?
- — Можем ли мы использовать VBA без Excel?
- — Как заставить VBA запускаться автоматически?
- — Как заставить Excel открываться автоматически?
- — Как я могу обновить файл Excel, не открывая его?
- — Как преобразовать Excel VBA в EXE?
- — Может ли макрос работать вне Excel?
- — Как запустить Vbscript в Excel?
- — Что такое команда «Выполнить» для Excel?
- — Можно ли настроить автоматический запуск макроса?
- — Как сделать так, чтобы макрос запускался автоматически ежедневно?
редактировать код, не открывая книгу? Удерживайте клавишу SHIFT при открытии книги чтобы предотвратить запуск кода.
Можем ли мы использовать VBA без Excel?
VBA не существует независимо, он должен быть прикреплен к офису, чтобы его можно было использовать. Но VBA — это не только EXCEL, можно использовать такие как WORD, ACCESS и другие офисные программы.
Как заставить VBA запускаться автоматически?
Инструкции:
- Откройте книгу Excel.
- Введите образцы данных в каждую книгу.
- Нажмите Alt + F11, чтобы открыть редактор VBA.
- Дважды щелкните ThisWorkbook в обозревателе проектов.
- Скопируйте приведенный выше код и вставьте в окно кода.
- Сохраните файл как книгу с поддержкой макросов.
- Откройте книгу, чтобы проверить ее, она запустит макрос автоматически.
Как заставить Excel открываться автоматически?
Автоматический запуск Excel с пустой книгой
- Щелкните Файл> Параметры.
- В разделе «Общие», а затем в разделе «Параметры запуска» установите флажок «Показывать начальный экран при запуске этого приложения».
- Щелкните ОК.
Как я могу обновить файл Excel, не открывая его?
Начните процесс в тот момент, когда вам не нужен немедленный доступ к другим файлам в Excel, и убедитесь, что у вас достаточно места на диске для повторного сохранения файла. Щелкните сводную таблицу, подключенную к файлу автономного куба. На вкладке «Данные» в группе «Подключения» щелкните Обновить все, а затем щелкните Обновить.
Как преобразовать Excel VBA в EXE?
Шаги
- Загрузите компилятор DoneEx XCell и установите его на свой компьютер. …
- Откройте книгу, дважды щелкнув по ней в проводнике Windows. …
- Найдите меню DoneEx в главном меню Excel. …
- Заполните форму компиляции, указав свои данные и предпочтительные параметры, затем нажмите кнопку «Скомпилировать».
Может ли макрос работать вне Excel?
Вы должны использовать VBA для выполнения задания на печать, вы не можете использовать «обычную печать». Скопируйте код с той стороны в обычный модуль. Но прежде чем вы сможете его запустить, вы должны установить ссылку на PDFcreator. В меню редактора VBA нажмите Инструменты Ссылки и найдите в списке PDFcreator, проверьте его и нажмите ОК.
Как запустить Vbscript в Excel?
Вставить код VBA в книгу Excel
- Откройте свою книгу в Excel.
- Нажмите Alt + F11, чтобы открыть редактор Visual Basic (VBE).
- Щелкните правой кнопкой мыши имя своей книги на панели «Project-VBAProject» (в верхнем левом углу окна редактора) и выберите «Вставить» -> «Модуль» в контекстном меню.
- Скопируйте код VBA (с веб-страницы и т. Д.)
Что такое команда «Выполнить» для Excel?
Тип «Excel.exe» в поле ввода Выполнить. Вы также можете нажать кнопку «Обзор», а затем перейти к EXE-файлу Excel и щелкнуть по нему, чтобы загрузить команду в поле «Выполнить».
Можно ли настроить автоматический запуск макроса?
Во многих случаях было бы здорово запускать макрос в заранее определенное время или через определенные интервалы. К счастью, Excel предоставляет метод VBA, который делает это возможным. Приложение. OnTime может автоматически запускать макросы, как только вы выполните некоторую настройку.
Как сделать так, чтобы макрос запускался автоматически ежедневно?
Обязательно укажите имя и расширение файла Excel в конце пути. Вам нужно будет изменить значение переменной MacroPath чтобы направить автоматизацию к конкретному макросу, который вы хотите запустить. Убедитесь, что вы сначала ссылаетесь на имя модуля, а затем на имя макроса.
Интересные материалы:
Где кнопка редактирования на iPhone?
Где лучшие обои для iPhone 12?
Где мне найти настройки на моем iPhone?
Где мне найти свое слайд-шоу на iPhone?
Где мне найти видимость на моем iPhone?
Где мои аудиокниги на моем iPhone?
Где мои фотографии после резервного копирования iPhone?
Где мои видео на моем iPhone 12?
Где мои закладки Safari iPhone?
Где моя библиотека на моем iPhone?