Как да излизат аргумнтите и описанието на UDF, когато са във Personal Macro Workbook?

Excel VBA VBA за Excel

Здравейте,

прилагам процедурите, които работят нормално в други проекти и модули на VBA, но когато ги преместя в Personal.xlsb не мога да изпълня втората процедура, а дава грешка. Къде е проблема?

Public Function Sum_MyNumbers_UDF(rng As Range, numb As Integer) As Double Dim rng_cell As Range For Each rng_cell In rng.Cells If rng_cell.Value Mod 2 = numb Then Sum_MyNumbers_UDF = Sum_MyNumbers_UDF + rng_cell.Value End If Next rng_cell
End Function

Sub Sum_MyNumbers_UDF_Descriotion() Dim f_name_marco As String Dim f_description As String Dim f_category Dim f_arguments(1 To 2) As String

f_name_marco = "Sum_MyNumbers_UDF" f_description = "Сумира само четните(0) или само нечетните(1) числа" f_category = 14 f_arguments(1) = "Диапазон" f_arguments(2) = "0-четни числа,1-нечетни числа" Application.MacroOptions Macro:=f_name_marco, _ Description:=f_description, _ Category:=f_category, _ ArgumentDescriptions:=f_arguments

End Sub

Здравейте, причината да не работи описанието за UDF в Personal.xlsb e в името на макроса, аргумента f_name_macro="Sum_MyNumbers_UDF". Записано по този начин, компилаторът търси макроса в активния файл, в който въвеждате функцията. Personal.xlsb e отделен файл. Ето защо преди името на макроса, трябва специално да посочите, че се намира в Personal.xlsb f_name_macro="'Personal.xlsb'!Sum_MyNumbers_UDF" Обърнете внимание, 'Personal.xlsb' се загражда в единична кавичка, цялото име - в двойна кавичка, а удивителната отделя името на функцията. Това е една особеност на метода Application.MacroOptions, когато се прилага в Personal.xlsb


Вашият отговор

Научи компютърните програми онлайн от топ експертите на България
Регистрацията в АУЛА ви дава:
  • 20 безплатни урока
  • Трикове и тънкости за софтуера
  • Отговори на вашите въпроси
  • Регистрация