|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
Есть 2 файла Excel. Как можно сделать, чтобы, например, при нажатии кнопки в одном файле в другом выполнялся определенный код? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 23:44 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
Нужно выполнить макрос (код), записанный в этом другом файле? Выполняемый код будет оперировать данными в первом файле, или в "своём" файле? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 23:59 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
Ну да, нужно выполнить код, записанный в другом файле. Поясню. Есть несколько файлов, из которых нужно взять несколько аргументов и передать их в общий код, вычислить значения и вернуть обратно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 00:08 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 00:11 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
А как туда аргументы передать? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 00:12 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
КДПоясню. Есть несколько файлов, из которых нужно взять несколько аргументов и передать их в общий код, вычислить значения и вернуть обратно.Так вам не код в "тех" файлах нужно выполнить, а получить данные из них - и вернуть другие данные обратно? А "общий код", выполняющий вычисления, и так в вашей рабочей книге находится? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 00:22 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
КДА как туда аргументы передать?Казанский Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 00:23 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
Так. Еще раз. Есть несколько файлов, в которых на изменение значений в определенных ячейках запускается код: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Хорошо бы, если бы эта общая процедура была где-нибудь в одном месте, а не в каждом файле. AndreTM, спасибо! Буду пробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 00:31 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
А не проще ли тогда не экспериментировать, а просто пооткрывать файлы и записать нужные значения - нехай прямо на месте всё и работает? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 01:32 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
AndreTMКазанский Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 23:14 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
Не ту кнопку нажал, извиняюсь. Что-то у меня при таком вызове ошибку 1004 выдает - не найден макрос. ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 23:16 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
Help Run Method Run method as it applies to the Application object. Runs a macro or calls a function. This can be used to run a macro written in Visual Basic or the Microsoft Excel macro language, or to run a function in a DLL or XLL. expression.Run(Macro, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30) expression Required. An expression that returns an Application object. Macro Optional Variant. The macro to run. This can be either a string with the macro name, a Range object indicating where the function is, or a register ID for a registered DLL (XLL) function. If a string is used, the string will be evaluated in the context of the active sheet. Arg1-Arg30 Optional Variant. The arguments that should be passed to the function. Remarks You cannot use named arguments with this method. Arguments must be passed by position. The Run method returns whatever the called macro returns. Objects passed as arguments to the macro are converted to values (by applying the Value property to the object). This means that you cannot pass objects to macros by using the Run method. Example This example shows how to call the function macro My_Func_Sum, which is defined on the macro sheet Mycustom.xlm (the macro sheet must be open) . The function takes two numeric arguments (1 and 5, in this example). mySum = Application.Run("MYCUSTOM.XLM!My_Func_Sum", 1, 5) MsgBox "Macro result: " & mySum Вариации на тему пробовали? Application.Run Macro:="Книга2.xls!MySub", Arg1:=Argument1, Arg2:=Argument2 Call Application.Run("Книга2.xls!MySub", Argument1, Argument2) И вообще, сказано же - книга с выполняемым кодом должна быть открыта... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2012, 04:41 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
Пробовал, пробовал. Опытным путем установил, что вызываемая процедура должна находиться в общем модуле. Т.е. из "частного" файла на процедуре Worksheet_Change (в модуле листа) вызывается процедура, находящаяся также в общем модуле другого "общего" файла, затем полученные значения передаются обратно в "частный" файл в процедуру, которая находится в общем модуле. И все бы хорошо. На одном файле попробовал - работает, на другом пробую - пишет: ошибка 1004 Не найден макрос. А называется также и расположен также как и в работающем файле. Сижу, втыкаю, где косяк... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2012, 14:50 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
Я все равно против такого подхода. Мало ли, где-то логика поменяется в одном-другом (но не во всех) вызываемых файлах... Что касается "общей процедуры": не изобретайте велосипед, просто напишите свою надстройку и подключите её... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2012, 16:50 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
Нет, логика вряд ли поменяется. Там смысл в том, что получается какой-то результат. От результата считается погрешность (%). Затем округляется по определенному правилу. Результат выдается с той же точностью, что и погрешность. Вычисления результата в каждом файле свои (но формулы могут быть похожи или совпадать). А вот правило округления для всех едино - решил вынести в общую процедуру. Чем же это плохой подход? Можно, конечно, и надстройку. Но уже чисто спортивный интерес: почему на одном файле работает, а на другом - нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2012, 18:50 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
В общем, что-то не получается :( Один файл работает, второй - глючит. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2012, 18:01 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
"Образцы, брат, образцы!.." Где примеры? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2012, 18:13 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
КДВ общем, что-то не получается :( Один файл работает, второй - глючит.Имя одного с пробелами, другого - без, наверное. Не хватает апострофов: Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2012, 18:25 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
The_PristИмя одного с пробелами, другого - без, наверное. Не хватает апострофов: Код: vbnet 1.
Вот это завтра попробую. Если не пойдет - выложу примеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2012, 17:45 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
Что-то не так. Выкладываю примеры. Файл "Общая" должен быть открыт, т.к. там общая процедура. Файл "Округление" - работает, "Расчет ..." - нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2012, 09:14 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
Примеры не помогли? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2012, 17:51 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
КД, А чем они могли помочь, если в коде Application.Run вызывает код из книги "Общая.xls", который мы не видим? Ошибка может быть в переданных параметрах. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2012, 18:11 |
|
выполнение кода в другом файле
|
|||
---|---|---|---|
#18+
The_PristКД, А чем они могли помочь, если в коде Application.Run вызывает код из книги "Общая.xls", который мы не видим? Ошибка может быть в переданных параметрах.Ошибка, не "Общая", а "'Расчет концентрации PO4 КФК-3-01 кюв 20.xls'!ForCells" Кстати, эта самая книга - Расчет концентрации PO4 КФК-3-01 кюв 20 - открыта на момент выполнения кода? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2012, 18:14 |
|
|
start [/forum/topic.php?fid=61&fpage=70&tid=2174478]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 322ms |
total: | 471ms |
0 / 0 |