2016-08-17 2 views
0

Я пытаюсь запустить макрос VBA Solid Works, это должно быть легко исправить, однако я не знаю, что изменить.vba Ошибка времени выполнения '91': переменная объекта или с переменной блока не установлена ​​

Когда я запускаю код ошибки кода с ошибкой времени выполнения

«91»

переменных объекта или переменная блока не установлен

Когда я нажимаю отладить показывает мне эту строку

Set Part = swApp.ActiveDoc

Я действительно не знаю, где искать, что делать, что может быть причиной, поэтому любая помощь очень ценится. Существенные части кода можно увидеть ниже (где ... указывает отсутствующий код, который является той же структурой, что и другие функции). Полный код можно увидеть здесь: Macro_Source_File

Dim swApp As Object 
Dim Part As Object 
Dim boolstatus As Boolean 
Dim longstatus As Long, longwarnings As Long 
Sub main() 
Set swApp = CreateObject("SldWorks.Application") 
Set Part = swApp.ActiveDoc 
Proc1 
Proc2 
Proc3 
Proc4 
Proc5 
Proc6 
Proc7 
Proc8 
Proc9 
Proc10 
Proc11 
Proc12 
Proc13 
Proc14 
Proc15 
Proc16 
Proc17 
Proc18 
Proc19 
Proc20 
Part.ClearSelection2 True 
boolstatus = Part.Extension.SelectByID2("Curve1", "REFERENCECURVES", -0.00231262, -0.00182843, 0.020955, False, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve2", "REFERENCECURVES", -0.0021168, -0.00236411, 0.02720474, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve3", "REFERENCECURVES", -0.00223617, -0.0027144, 0.03345447, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve4", "REFERENCECURVES", -0.00249537, -0.00287881, 0.03970421, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve5", "REFERENCECURVES", -0.00282783, -0.00287835, 0.04595395, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve6", "REFERENCECURVES", -0.00351723, -0.00287119, 0.05220368, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve7", "REFERENCECURVES", -0.0055227, -0.0032572, 0.05845342, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve8", "REFERENCECURVES", -0.00756485, -0.0034921, 0.06470316, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve9", "REFERENCECURVES", -0.00948977, -0.00359409, 0.07095289, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve10", "REFERENCECURVES", -0.01123743, -0.00358632, 0.07720263, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve11", "REFERENCECURVES", -0.01275123, -0.00349398, 0.08345237, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve12", "REFERENCECURVES", -0.01289014, -0.00310294, 0.08970211, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve13", "REFERENCECURVES", -0.01208902, -0.00258381, 0.09595184, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve14", "REFERENCECURVES", -0.01103539, -0.00209482, 0.10220158, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve15", "REFERENCECURVES", -0.00978747, -0.00163788, 0.10845132, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve16", "REFERENCECURVES", -0.00828882, -0.00121351, 0.11470105, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve17", "REFERENCECURVES", -0.00686848, -0.00083556, 0.12095079, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve18", "REFERENCECURVES", -0.00678812, -0.00066149, 0.12720053, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve19", "REFERENCECURVES", -0.00585563, -0.00585251, 0.13245522, True, 1, Nothing, 0) 
boolstatus = Part.Extension.SelectByID2("Curve20", "REFERENCECURVES", -0.00522598, -0.01340759, 0.13263761, True, 1, Nothing, 0) 
Part.FeatureManager.InsertProtrusionBlend False, True, False, 1, 6, 6, 1, 1, True, True, False, 0, 0, 0, True, True, True 
End Sub 

Sub Proc1() 
Set Part = swApp.ActiveDoc 
Part.InsertCurveFileBegin 
boolstatus = Part.InsertCurveFilePoint(-0.00231262, -0.00182843, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(-0.00232201, -0.00179355, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(-0.0023492, -0.00169261, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(-0.00193825, -0.00141403, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(-0.001174, -0.00099736, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(-0.00022623, -0.00050828, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.00087785, 0.00002491, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.00210496, 0.00057278, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.00341658, 0.00110609, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.00477003, 0.00159708, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.00612951, 0.00202043, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.00745767, 0.00233337, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.00869064, 0.00252003, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.00977735, 0.0025858, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.01067256, 0.00254594, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.01134017, 0.00242162, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.01175535, 0.00223452, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.01190555, 0.00200133, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.01190555, 0.00200133, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.01178923, 0.00175006, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.01141567, 0.00150298, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.01080407, 0.00126068, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.00998055, 0.00102135, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.00897647, 0.00077979, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.00782706, 0.0005274, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.00657067, 0.00025367, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.00523448, -0.00004854, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.00386212, -0.00035713, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.0025091, -0.00066457, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.00122199, -0.00096449, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(0.00004512, -0.00124691, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(-0.00098083, -0.00149976, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(-0.00181994, -0.00171086, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(-0.00231106, -0.00183422, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(-0.00231224, -0.00182982, 0.020955) 
boolstatus = Part.InsertCurveFilePoint(-0.00231262, -0.00182843, 0.020955) 
boolstatus = Part.InsertCurveFileEnd() 
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1, 0, "Curve1") 
End Sub 

Sub Proc2() 
Set Part = swApp.ActiveDoc 
Part.InsertCurveFileBegin 
boolstatus = Part.InsertCurveFilePoint(-0.0021168, -0.00236411, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(-0.00213034, -0.00232574, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(-0.00216954, -0.00221468, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(-0.00223031, -0.00204246, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(-0.00167844, -0.00160452, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(-0.00065574, -0.00097391, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.00053875, -0.00028036, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.00187018, 0.00044021, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.00329779, 0.0011517, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.00477601, 0.00181922, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.00626681, 0.00241128, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.00773188, 0.00287663, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.00910086, 0.00319197, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.0103159, 0.00335898, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.01132489, 0.00339094, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.01208546, 0.00330851, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.01256786, 0.00313392, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.01275656, 0.00288487, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.01275656, 0.00288487, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.01264744, 0.00259265, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.012249, 0.00228309, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.01158277, 0.00195851, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.01067824, 0.00161909, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.00957108, 0.00126169, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.0083016, 0.00087967, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.00691378, 0.00046452, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.00543877, 0.00001052, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.00392367, -0.00045373, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.0024302, -0.00091504, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(0.00101012, -0.00136224, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(-0.00028764, -0.00178035, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(-0.00141839, -0.00215231, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(-0.00211132, -0.00237963, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(-0.00211455, -0.00237048, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(-0.00211626, -0.00236563, 0.02720474) 
boolstatus = Part.InsertCurveFilePoint(-0.0021168, -0.00236411, 0.02720474) 
boolstatus = Part.InsertCurveFileEnd() 
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1, 0, "Curve2") 
End Sub 

. 
. 
. 

Sub Proc20() 
Set Part = swApp.ActiveDoc 
Part.InsertCurveFileBegin 
boolstatus = Part.InsertCurveFilePoint(-0.00522598, -0.01340759, 0.13263761) 
boolstatus = Part.InsertCurveFilePoint(-0.00522724, -0.01340759, 0.1326561) 
boolstatus = Part.InsertCurveFilePoint(-0.00523089, -0.01340759, 0.13270962) 
boolstatus = Part.InsertCurveFilePoint(-0.00523654, -0.01340759, 0.13279261) 
boolstatus = Part.InsertCurveFilePoint(-0.00524364, -0.01340759, 0.13289681) 
boolstatus = Part.InsertCurveFilePoint(-0.00525152, -0.01340759, 0.133) 
boolstatus = Part.InsertCurveFilePoint(-0.00525946, -0.01340759, 0.13312893) 
boolstatus = Part.InsertCurveFilePoint(-0.00465279, -0.01340759, 0.13327821) 
boolstatus = Part.InsertCurveFilePoint(-0.00393952, -0.01340759, 0.13341622) 
boolstatus = Part.InsertCurveFilePoint(-0.00320939, -0.01340759, 0.13352877) 
boolstatus = Part.InsertCurveFilePoint(-0.00248296, -0.01340759, 0.13360667) 
boolstatus = Part.InsertCurveFilePoint(-0.00178327, -0.01340759, 0.13363211) 
boolstatus = Part.InsertCurveFilePoint(-0.00114406, -0.01340759, 0.13360345) 
boolstatus = Part.InsertCurveFilePoint(-0.0005905, -0.01340759, 0.13352848) 
boolstatus = Part.InsertCurveFilePoint(-0.00014384, -0.01340759, 0.13341938) 
boolstatus = Part.InsertCurveFilePoint(0.00017986, -0.01340759, 0.1332904) 
boolstatus = Part.InsertCurveFilePoint(0.00037024, -0.01340759, 0.13315493) 
boolstatus = Part.InsertCurveFilePoint(0.00042266, -0.01340759, 0.13302262) 
boolstatus = Part.InsertCurveFilePoint(0.00042266, -0.01340759, 0.13302262) 
boolstatus = Part.InsertCurveFilePoint(0.00033912, -0.01340759, 0.1329077) 
boolstatus = Part.InsertCurveFilePoint(0.0001265, -0.01340759, 0.13282048) 
boolstatus = Part.InsertCurveFilePoint(-0.00020546, -0.01340759, 0.13275933) 
boolstatus = Part.InsertCurveFilePoint(-0.0006438, -0.01340759, 0.13272076) 
boolstatus = Part.InsertCurveFilePoint(-0.00117325, -0.01340759, 0.13269902) 
boolstatus = Part.InsertCurveFilePoint(-0.00177694, -0.01340759, 0.13268629) 
boolstatus = Part.InsertCurveFilePoint(-0.0024366, -0.01340759, 0.13267345) 
boolstatus = Part.InsertCurveFilePoint(-0.00313926, -0.01340759, 0.13265421) 
boolstatus = Part.InsertCurveFilePoint(-0.00386076, -0.01340759, 0.13263536) 
boolstatus = Part.InsertCurveFilePoint(-0.00457242, -0.01340759, 0.13261517) 
boolstatus = Part.InsertCurveFilePoint(-0.00522301, -0.01340759, 0.13259405) 
boolstatus = Part.InsertCurveFilePoint(-0.00522417, -0.01340759, 0.13261114) 
boolstatus = Part.InsertCurveFilePoint(-0.00522496, -0.01340759, 0.13262275) 
boolstatus = Part.InsertCurveFilePoint(-0.00522547, -0.01340759, 0.13263013) 
boolstatus = Part.InsertCurveFilePoint(-0.00522577, -0.01340759, 0.13263454) 
boolstatus = Part.InsertCurveFilePoint(-0.00522593, -0.01340759, 0.13263688) 
boolstatus = Part.InsertCurveFilePoint(-0.00522598, -0.01340759, 0.13263761) 
boolstatus = Part.InsertCurveFileEnd() 
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1, 0, "Curve20") 
End Sub 

Спасибо так много!

+0

Вы отредактировали вопрос, включив мой ответ, или потому, что впервые сделали ошибку копирования/вставки? – litelite

ответ

3

это означает, что swApp является Nothing, потому что вы фактически не create.

Вот как это сделать:

Set swApp = CreateObject("SldWorks.Application") 

Источник: взятая прямо из doc

+0

Тогда что делает 'Set swApp = Application.SldWorks'? – GSerg

+0

@GSerg Из того, что я могу найти в Интернете, он возвращает текущий запущенный экземпляр SolidWork. И (возможно) ничего, если он не работает. – litelite

+0

Я пробовал то, что вы сказали, и он по-прежнему появляется с той же ошибкой, когда я наводил указатель мыши на строку debug'd, это говорит «Part = Nothing». Как установить часть как GLOBAL-переменную, доступную каждой функции? – UndergradEngineer23

0

Вы установив переменную в nothing.

Лучше сделать так (с раннего связывания):

Dim swApp as SldWorks.SldWorks 
Set swApp = Application.SldWorks 

Это позволит вам использовать IntelliSense.

Смежные вопросы

 Смежные вопросы