2015-08-25 3 views
0

я все еще новичок в программировании VBAпередача переменной формы одной книги в другую woorkbook УВУ

У меня есть простые вопросы, которые я ищу простой Methode, если это возможно.

Я создаю пользовательскую форму (userform1) в workbookA и в пользовательской форме, мне понадобится модуль (module1), созданный в другой книге (workbookB), чтобы сделать некоторые вычисления. Для запуска расчета модуль нуждается в некоторой информации (TTAA, допуск). мне бы очень хотелось узнать самый простой способ передачи некоторой переменной из userform1 (workbookA.userform1) в module1 (workbookB.module1) и повторной передачи результатов в userform1.

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

TTAA = CDbl(Me.TTAA_textbox.Value) 
tolerance = CDbl(Me.tolerance_textbox.Value) 
application.Run ("'Workbooks.xls'!module1") 

я уже объявлен общественности, переменная TTAA и tolerance в Module1

действительно оценили вашу помощь. заранее спасибо

ответ

0

Самый простой способ (который я знаю, чтобы работать), чтобы временно «сохранить» переменную на листе в одном из любого файла, а затем ссылаться на него, как

Worksheets.Add.Name = "tmp" 
Workbooks(WorkbookA.Name).Worksheets("tmp").Range("A1").Value2 
'And remove it later on 
Application.DisplayAlerts = False 
Workbooks(WorkbookA.Name).Worksheets("tmp").Delete 
Application.DisplayAlerts = True 

Альтернативой может быть объявить subs в WorkbookB как функции. Помимо переменных public это единственный способ получить возвращаемые значения (в собственном формате) из независимых сегментов кода VBA. Тем не менее, если вам не повезло с переменными public, я сомневаюсь, что это сработает.

Но почему бы вам не импортировать модуль в WorkbookA? Следующий ответ SO может помочь вам в этом. Writing a macro that writes a macro to another Excel-file

+0

спасибо, что ответит. действительно оценил это – maximus