Fråga : vba för fel för mismatch för byrefargumenttyp

inte sure hur man löser denna error.
I har en fungera i en standard enhet, det får värderar, och appeller anslå klassificerar metod för att göra något som bearbetar, och därefter att gå en variabel CWValuein tillbaka för value.

the är det skulle svaret för highlighted
a kvickt är mycket appreciated.

regards i advance
> för
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
480:
481:
482:
483:
484:
485:
486:
487:
488:
489:
490:
491:
492:
493:
494:
495:
496:
497:
498:
499:
500:
501:
502:
503:
504:
505:
506:
507:
508:
509:
510:
511:
512:
513:
514:
515:
516:
517:
518:
519:
520:
521:
522:
523:
524:
525:
526:
527:
528:
529:
530:
531:
532:
533:
534:
535:
536:
537:
538:
539:
540:
541:
542:
543:
544:
545:
546:
547:
548:
549:
550:
551:
552:
553:
554:
555:
556:
557:
558:
559:
560:
561:
562:
563:
564:
565:
566:
567:
568:
569:
570:
571:
572:
573:
574:
575:
576:
577:
578:
579:
580:
581:
582:
583:
584:
585:
586:
587:
588:
589:
590:
591:
592:
593:
594:
595:
596:
597:
598:
599:
600:
601:
602:
603:
604:
605:
606:
607:
608:
609:
610:
611:
612:
613:
614:
615:
616:
617:
618:
619:
620:
621:
622:
623:
624:
625:
626:
627:
628:
629:
630:
631:
632:
633:
634:
635:
636:
637:
638:
639:
640:
641:
642:
643:
644:
645:
646:
647:
648:
649:
650:
651:
652:
653:
654:
655:
656:
657:
658:
659:
660:
661:
662:
663:
664:
665:
666:
667:
668:
669:
670:
671:
672:
673:
674:
675:
676:
677:
678:
679:
680:
681:
682:
683:
684:
685:
686:
687:
688:
689:
690:
691:
692:
693:
694:
695:
696:
697:
698:
699:
700:
701:
702:
703:
704:
705:
706:
707:
708:
709:
710:
711:
712:
713:
714:
715:
716:
717:
718:
719:
720:
721:
722:
723:
724:
725:
726:
727:
728:
729:
730:
731:
732:
733:
734:
735:
736:
737:
738:
739:
740:
741:
742:
743:
744:
745:
746:
747:
748:
749:
750:
751:
752:
753:
754:
755:
756:
757:
758:
759:
760:
761:
762:
763:
764:
765:
766:
767:
768:
769:
770:
771:
772:
" codeBody " " >Public för class= " för 0 därefter kontra = kontra + 1000 Annars Avsluta om Om InStr (StrCWEngineIn, StrClientEngineIn) > 0 därefter kontra = kontra + 1000 Annars Avsluta om '***************************************************************************, 'kontrollera familjen '' framåt instring cw till beställaren Om FamilyInstr (StrCWEngineIn, StrClientEngineIn) = "" därefter Annars kontra = kontra + 100 Avsluta om '***************************************************************************, 'kontrollera typos StrTypo = DecodeEngine (StrCWEngineIn, StrClientEngineIn) Om StrTypo = ”typo” därefter kontra = kontra + 10 Annars 'gör ingenting Avsluta om '****************************************************************************, 'få teckenrangställningen intcount = CharacterRank (StrCWEngineIn, StrClientEngineIn) kontra = kontra + intcount '***************************************************************************, '' ***************************************************************************, '' Tekniskt testa bhp 'Om CurrentProject.AllForms (”huvudsakligt”) .IsLoaded därefter ', 'BHPIn = [bildar]! [Huvudsakligt]! [CALC BHP] ', ', 'Annars ', ', 'Avsluta om 'avsluta av jämför Avsluta om Avsluta om GetEngineRank = kontrar * 100 Avsluta fungerar Allmänhet fungerar CharacterRank (StrEng1 som stränger, strEng2 som stränger) som Long Dunkel strömbrytare som stopWatchen Dunkel lIndex som Long Dunkel lLoopPosition som Long Dunkel lCharacterPosition som Long Dunkel iCounter som Long Dunkla StrWantedCharacter som stränger Dunkla StrTemp som stränger 'Uppsättning strömbrytare = ny StopWatch 'sw.StartTimer 'förbind till det kortare stränger, som denna längd kontrollerar kretsar och instrriktningen Om Len (strEng2) < Len (StrEng1) därefter 'byt dem strEng2 = strEng2 + StrEng1 StrEng1 = lämnat (strEng2, Len (strEng2) - Len (StrEng1)) strEng2 = högert (strEng2, Len (strEng2) - Len (StrEng1)) Avsluta om 'få det kortast len lIndex = Len (StrEng1) 'strtemp blir jämbördig till det längst stränger, som detta är det som vi önskar att förkorta för varje kretsar StrTemp = strEng2 'kretsa stränger omkring För lLoopPosition = 1 till lIndex 'få individteckenstart på början av stränga StrWantedCharacter = mitt- (StrEng1, lLoopPosition, 1) 'få placera av vårt tecken från det längst stränger lCharacterPosition = InStr (strEng2, StrWantedCharacter) 'teckenet grundar in stränger longest Om InStr (StrTemp, StrWantedCharacter) <> 0 därefter 'ta bort teckenet från vikarierna stränger StrTemp = byter ut (StrTemp, mitt- (strEng2, lCharacterPosition, 1), "", 1) 'öka kontra iCounter = iCounter + 1 Avsluta om Nästa lLoopPosition 'processtime = sw.EndTimer & ”millisekunder”, 'Debug.Print sw.EndTimer 'Debug.Print-iCounter CharacterRank = iCounter Avsluta fungerar Allmänhet fungerar NomRank (StrClient som stränger, CWNomIn som dubbelt) som heltal Dunkla ValueIn som dubbelt Dunkla StrReturnedFromClientString som stränger Om IsNull (CWNomIn) därefter ValueIn = 0 Annars ValueIn = CWNomIn Avsluta om StrReturnedFromClientString = GetCC (StrClient) Om StrComp (CStr (ValueIn), StrReturnedFromClientString, 1) = falskt därefter NomRank = 1 Gå ut fungerar Avsluta om NomRank = 0 Avsluta fungerar Allmänhet fungerar KWRank (den ClientIn så varianten, CWKWIn som Long, valfri varianceIn som heltal) som heltal Dunkla ValueMin som Long Dunkla ValueMax som Long Dunkla ValueIn som Long Dunkla ValueCWIn som Long Dunkelt A som Long ValueCWIn = CWKWIn Om (varianceIn) = 0 därefter ValueMin = ValueCWIn - 5 ValueMax = ValueCWIn + 5 Annars ValueMin = ValueCWIn - varianceIn ValueMax = ValueCWIn + varianceIn Avsluta om Om ValueCWIn = ClientIn därefter KWRank = 2 Gå ut fungerar Annars För A = ValueMin till ValueMax Om ClientIn = A därefter KWRank = 1 Gå ut fungerar Avsluta om Därefter A Avsluta om KWRank = 0 Avsluta fungerar Allmänhet fungerar BhpRank (den ClientIn så varianten, CalcBHP som Long, valfri varianceIn som heltal) som heltal Dunkla ValueMin som Long Dunkla ValueMax som Long Dunkla ValueIn som Long Dunkla ValueCWIn som Long Dunkelt A som Long ValueCWIn = CalcBHP Om (varianceIn) = 0 därefter ValueMin = ValueCWIn - 5 ValueMax = ValueCWIn + 5 Annars ValueMin = ValueCWIn - varianceIn ValueMax = ValueCWIn + varianceIn Avsluta om Om ValueCWIn = ClientIn därefter BhpRank = 2 Gå ut fungerar Annars För A = ValueMin till ValueMax Om ClientIn = A därefter BhpRank = 1 Gå ut fungerar Avsluta om Därefter A Avsluta om BhpRank = 0 Avsluta fungerar Allmänhet fungerar ValveRank (den ClientStr så varianten, CWCylindersIn som heltal) Dunkla ValueIn som heltal Dunkla ClientValveCount som Long Dunkla CylinderCountIn som Long Om IsNull (CWCylindersIn) därefter ValueIn = 0 Annars CylinderCountIn = CWCylindersIn Avsluta om Om IsNull ([bildar]! [huvudsakligt]! [VENTILER PER CYLINDERN]. Värdera) därefter ValueIn = 0 Annars ValueIn = [bildar]! [huvudsakligt]! [VENTILER PER CYLINDERN]. Värdera * CylinderCountIn ClientValveCount = GetNumValves (ClientStr) Avsluta om Om ValueIn = ClientValveCount och ValueIn > 0 därefter ValveRank = 1 Gå ut fungerar Avsluta om ValveRank = 0 Avsluta fungerar Fungera GetNumValves (text) Dunkelt pos. som heltal Gör pos. = InStr (pos. + 1, text, ”V”) Om pos. > 2 därefter Om mitt- (text, pos. - 2, 2) gilla ”##” därefter GetNumValves = mitt-, Val ((text, pos. - 2, 2)) Gå ut fungerar Avsluta om Avsluta om Om pos. > 1 därefter Om mitt- (text, pos. - 1, 1) något liknande ”nr.” därefter GetNumValves = mitt-, Val ((text, pos. - 1, 1)) Gå ut fungerar Avsluta om Avsluta om Kretsa stundpos. GetNumValves = 0 Avsluta fungerar Allmänhet fungerar FuelRank (StrClient, CWFuelIn som stränger) som Long Dunkla ValueIn som stränger Om IsNull (CWFuelIn) därefter ValueIn = "", Annars ValueIn = CWFuelIn Avsluta om Om lämnade StrComp ((ValueIn, 1), StrClient, 1) = falskt därefter FuelRank = 1 Gå ut fungerar Avsluta om FuelRank = 0 Avsluta fungerar Allmänhet fungerar DoorRank (ClientStr som stränger, CWDoorsIn som heltal) som heltal Dunkla ValueIn som heltal Dunkla ClientDoorCount som Long Om IsNull (CWDoorsIn) därefter ValueIn = 0 Annars ValueIn = CWDoorsIn ClientDoorCount = GetDoors (ClientStr) Avsluta om Om ValueIn = ClientDoorCount och ValueIn > 0 därefter DoorRank = 1 Gå ut fungerar Avsluta om DoorRank = 0 Avsluta fungerar Allmänhet fungerar TransmissionRank (ClientStr som stränger, CWTransmissionIn som stränger) Dunkla ValueIn som stränger Om IsNull (CWTransmissionIn) därefter ValueIn = "", Annars ValueIn = CWTransmissionIn Avsluta om Om StrComp (ValueIn, ClientStr, 1) = falskt därefter TransmissionRank = 1 Gå ut fungerar Avsluta om TransmissionRank = 0 Avsluta fungerar Fungera GetDoors (ClientStr som stränger) som heltal Dunkel regex som anmärker Dunkel match som anmärker Fastställd regex = CreateObject (”vbscript.regexp”) 'filtrera för tal och ”D som avskiljs av utrymme”, regex. Mönstra = ”[0-9] + D”, 'vänd av fallet regex.IgnoreCase = True 'skapa anmärker Fastställd match = regex. Utför (ClientStr) 'uppsättningen eller får värderar Om match. Räkning > 0 därefter GetDoors = klippning (Val (match (0))) 'byten anmärker Fastställd regex = ingenting Avsluta fungerar Allmänhet fungerar CCRank (den ClientIn så varianten, CWCCIn som Long, valfri varianceIn som heltal) som heltal Dunkla ValueMin som Long Dunkla ValueMax som Long Dunkla ValueIn som Long Dunkla ValueCWIn som Long Dunkelt A som Long ValueCWIn = CWCCIn Om (varianceIn) = 0 därefter ValueMin = ValueCWIn - 5 ValueMax = ValueCWIn + 5 Annars ValueMin = ValueCWIn - varianceIn ValueMax = ValueCWIn + varianceIn Avsluta om Om ValueCWIn = ClientIn därefter CCRank = 2 Gå ut fungerar Annars För A = ValueMin till ValueMax Om ClientIn = A därefter CCRank = 1 Gå ut fungerar Avsluta om Därefter A Avsluta om CCRank = 0 Avsluta fungerar Allmänhet fungerar BhpStrRank (StrClient som stränger, CWBhp som Long, den valfria variancen som heltal) Dunkla StrCientln som stränger Dunkla ValueMin som Long Dunkla ValueMax som Long Dunkla ValueCWIn som Long Dunkelt A som Long Dunkelt B som Long Dunkla StrTemp som stränger Dunkel StrTemp2 som stränger Dunkla StrArray () som stränger Dunkelt kontra som heltal Dunkel teststr som stränger Om IsNull (ValueCWIn) därefter ValueCWIn = 0 Annars ValueCWIn = CWBhp Avsluta om Om (varianceIn) = 0 därefter ValueMin = ValueCWIn - 5 ValueMax = ValueCWIn + 5 Annars ValueMin = ValueCWIn - varianceIn ValueMax = ValueCWIn + varianceIn Avsluta om Om IsNull (ValueCWIn) = True eller ValueCWIn = 0 därefter Annars Om Len (StrClient) <= 0 eller IsNull (StrClient) därefter KWStrRank = 0 Gå ut fungerar Annars Om ValueCWIn = StrClient därefter BhpStrRank = 2 Gå ut fungerar Annars StrTemp = SplitNumeralandText (StrClient) StrTemp2 = RegExpReplace (StrTemp, ”[^0-9]”, ””) StrArray = splittring (StrTemp2) För A = LBound (StrArray ()) Till UBound (StrArray ()) För B = ValueMin till ValueMax Om (StrComp (StrArray (A), CStr (B), 1) = falskt) därefter BhpStrRank = 1 Gå ut fungerar Avsluta om Nästa B Därefter A Avsluta om Avsluta om Avsluta om BhpStrRank = 0 Avsluta fungerar Allmänhet fungerar KWStrRank (StrClient som stränger, CWKw som Long, den valfria variancen som heltal) Dunkla StrCientln som stränger Dunkla ValueMin som Long Dunkla ValueMax som Long Dunkla ValueCWIn som Long Dunkelt A som Long Dunkelt B som Long Dunkla StrTemp som stränger Dunkel StrTemp2 som stränger Dunkla StrArray () som stränger Dunkelt kontra som heltal Dunkel teststr som stränger Om IsNull (ValueCWIn) därefter ValueCWIn = 0 Annars ValueCWIn = CWKw Avsluta om Om (varianceIn) = 0 därefter ValueMin = ValueCWIn - 5 ValueMax = ValueCWIn + 5 Annars ValueMin = ValueCWIn - varianceIn ValueMax = ValueCWIn + varianceIn Avsluta om Om IsNull (ValueCWIn) = True eller ValueCWIn = 0 därefter Annars Om Len (StrClient) <= 0 eller IsNull (StrClient) därefter KWStrRank = 0 Gå ut fungerar Annars Om ValueCWIn = StrClient därefter KWStrRank = 2 Gå ut fungerar Annars StrTemp = SplitNumeralandText (StrClient) StrTemp2 = RegExpReplace (StrTemp, ”[^0-9]”, ””) StrArray = splittring (StrTemp2) För A = LBound (StrArray ()) Till UBound (StrArray ()) För B = ValueMin till ValueMax Om (StrComp (StrArray (A), CStr (B), 1) = falskt) därefter KWStrRank = 1 Gå ut fungerar Avsluta om Nästa B Därefter A Avsluta om Avsluta om Avsluta om KWStrRank = 0 Avsluta fungerar Allmänhet fungerar getTechDetail (StrClient som stränger, TechSpec som stränger, valfri variance som heltal) som heltal 'Dunkla StrCientln som stränger 'Dunkla ValueMin som Long 'Dunkla ValueMax som Long 'Dunkla ValueIn som Long 'Dunkelt A som Long 'Dunkelt B som Long 'Dunkla StrTemp som stränger 'Dunkel StrTemp2 som stränger 'Dunkla StrArray () som stränger 'Dunkelt kontra som heltal 'Dunkel teststr som stränger Om StrClient = "" eller ”0” därefter Annars Om (variance) = 0 därefter variance = 5 Om IsNull (ValueIn) = True eller ValueIn = 0 därefter Annars Om Len (StrClient) <= 0 eller IsNull (StrClient) därefter getTechDetail = 0 Gå ut fungerar Annars Om ValueIn = StrClient därefter getTechDetail = 2 Gå ut fungerar Annars StrTemp = SplitNumeralandText (StrClient) StrTemp2 = RegExpReplace (StrTemp, ”[^0-9]”, ””) StrArray = splittring (StrTemp2) ValueMin = ValueIn - variance ValueMax = ValueIn + variance För A = LBound (StrArray ()) Till UBound (StrArray ()) För B = ValueMin till ValueMax Om (StrComp (StrArray (A), CStr (B), 1) = falskt) därefter getTechDetail = 1 Gå ut fungerar Avsluta om Nästa B Därefter A Avsluta om Avsluta om Avsluta om Avsluta om getTechDetail = 0 Avsluta fungerar Allmänhet fungerar BodyRank (ClientStr som stränger) Dunkla ValueIn som stränger Om IsNull ([bildar]! [huvudsakligt]! [Förkroppsliga vanligt pseudonymen CW]. Värdera) därefter ValueIn = "", Annars ValueIn = [bildar]! [huvudsakligt]! [Förkroppsliga vanligt pseudonymen CW]. Värdera Avsluta om Om StrComp (ValueIn, ClientStr, 1) = falskt därefter BodyRank = 1 Gå ut fungerar Avsluta om BodyRank = 0 Avsluta fungerar
" klar "

Svar : vba för fel för mismatch för byrefargumenttyp

Looksnågot liknande för I t ditt problem är att du har definierat CWValueIn, som varianten & i fungerar dem förväntar alltid ett långt.
Exempel KWRank (den ClientIn så varianten, CWKWIn som Long.

Gary
Andra lösningar  
 
programming4us programming4us