Мазмұны
VBA жүйесінде көшіру және қоюмен жұмыс істеу кезінде кездесетін ең көп кездесетін мәселелердің бірі - іске қосу уақытының қатесі 1004 : Ауқым класының PasteSpecial әдісі сәтсіз аяқталды . Бұл мақалада мен сізге бұл қатенің себебі неде болуы мүмкін және оларды дұрыс мысалдар мен иллюстрациялар арқылы шешу жолдарын көрсетемін.
Тәжірибелік жұмыс кітабын жүктеп алыңыз
Осы мақаланы оқып жатқанда жаттығу жасау үшін осы жаттығу жұмыс кітабын жүктеп алыңыз.
PasteSpecial Method Failed.xlsm
PasteSpecial Method of Range Class сәтсіз аяқталды: Себептер және Шешімдер
Одан әрі кешіктірмей, негізгі әңгімемізге көшейік. Яғни, бұл қатенің себептері қандай болуы мүмкін және оларды қалай шешуге болады.
1-себеп: ештеңені көшірмей PasteSpecial әдісіне кіру
Бұл ең қатенің жалпы себебі. Яғни, ештеңе көшірмей PasteSpecial әдісіне кіруге тырысу.
Оны анық түсіну үшін келесі VBA кодын тексеріңіз.
⧭ VBA коды:
4114
Мұнда біз VBA қолданбасының PasteSpecial әдісін қолдандық. кез келген нәрсені көшіру. Сондықтан Excel оны іске қосқан кезде іске қосу қатесі 1004 көрсетеді.
⧭ Шешім:
Бұл мәселені шешу үшін алдымен ұяшықтар ауқымын көшіріп, содан кейін PasteSpecial әдісіне кіру керек.
1478
Осы кодты іске қосқан кезде, боладыбелсенді жұмыс парағының B3:B5 диапазонының формулаларын таңдалған ауқымға қойыңыз.
Толығырақ оқу: Жұмыс парағы сыныбының PasteSpecial әдісі сәтсіз аяқталды (себептері және шешімдері)
2-себеп: емле қатесі бар PasteSpecial әдісіне қатынасу
Бұл басқа жалпы себеп. қате. Яғни, кез келген аргументте емле қате(лері) бар PasteSpecial әдісіне қол жеткізу.
Оны анық ету үшін келесі VBA кодын қараңыз. Мұнда біз xlPasteAll аргументінде емле қатесін жібердік.
⧭ VBA коды:
2921
Осы кодты іске қосқан кезде, сіз орындау уақыты қатесі 1004 аласыз.
⧭ Шешім:
Шешімі оңай. Сіз мұны әлдеқашан болжағаныңызға сенімдімін. Тек барлық аргументтердің емлесі дұрыс жасалғанына көз жеткізіңіз.
Және қате автоматты түрде жойылады.
Толығырақ оқу: Қою әдісін пайдалану Excel бағдарламасындағы арнайы пәрмен (5 қолайлы жол)
Ұқсас оқулар
- Excel VBA: ауқымды басқа жұмыс кітабына көшіру
- Мәндерді Excel VBA көмегімен келесі бос жолға көшіріңіз және қойыңыз (3 мысал)
- VBA PasteSpecial қолданбасын қолданыңыз және Excel бағдарламасында бастапқы пішімдеуді сақтаңыз
- Excel бағдарламасындағы бірнеше ұяшықтардағы бірдей мәнді көшіру жолы (4 әдіс)
- Шарттар негізінде басқа жұмыс парағына жолдарды көшіру үшін Excel VBA
3-себеп: Жаңасын ашуКөшіру/қою режимінен бас тартатын көшіруден кейін жұмыс кітабы
Бұл қатенің тағы бір маңызды себебі. Яғни, қоюдан бұрын көшіру/қою режимінен бас тартатын әрекетті орындау.
Түсіну үшін келесі кодты қараңыз.
⧭ VBA коды:
7936
Осында біз В3:B5 ауқымын Жұмыс кітабы1 деп аталатын жұмыс кітабының Парақ1 ішінен көшірдік.
Содан кейін біз сол қалтада Жұмыс кітабы2 деп аталатын жаңа жұмыс кітабын жасадық және көшірілген ауқымды Shet1<диапазонының B3:B5 диапазонына қоюға тырыстық. 2> осы жұмыс кітабының.
Бірақ біз кодты іске қосқан кезде, ол PasteSpecial Method of Range Class Failed Failed Қатесін көрсетеді, себебі біз жаңа жұмыс кітабын жасаған кезде көшіру/қою режимі жойылады.
⧭ Шешуі:
Бұл мәселені шешу үшін алдымен жазыңыз. Жұмыс кітабы2 деп аталатын жаңа жұмыс кітабын жасау үшін код жолдарын төмен түсіріңіз.
Одан кейін Жұмыс кітабы1 белсендіру үшін жолдарды енгізіп, одан қажетті ауқымды көшіріңіз.
Соңында, Жұмыс кітабы2 іске қосыңыз және көшірілген ауқымды сол жерге қойыңыз.
3203
Осы кодты іске қосыңыз. Ол В3:B5 ауқымын Жұмыс кітабы1-дегі 1-парақ ішінен көшіреді.
Және оны қойыңыз Жұмыс кітабы2 деп аталатын жаңадан жасалған жұмыс кітабының Парақ1 ішіне.
⧭ Сақтық:
Әрине, іске қосу кезінде Жұмыс кітапшасын1 ашық ұстауды ұмытпаңыз.код.
Толығырақ оқу: Excel бағдарламасында макростарсыз көшіру мен қоюды қалай өшіруге болады (2 шартпен)
4-себеп: Көшіру/қою режимін болдырмайтын Application.CutCopyMode параметрін False күйіне айналдыру
Соңында, қатенің орын алуының басқа себебі болуы мүмкін. PasteSpecial әдісіне қол жеткізбес бұрын Application.CutCopyMode қатесін өшіруіміз мүмкін.
Бұл өте кең таралған тәжірибе болмаса да, кейде біз оны қажет кезде жасаймыз. көп жолдармен жұмыс жасаңыз.
Оны анық түсіну үшін келесі кодты қараңыз. Мұнда біз B3:B5 ауқымын көшірдік, бірақ оны қоймас бұрын CutCopyMode параметрінен бас тарттық.
⧭ VBA коды:
9880
Кодты іске қосқан кезде, ол Арнайы диапазон сыныбы сәтсіз әдісін қою қатесін көрсетеді.
⧭ Шешімі:
Менің ойымша, қазір барлығыңыз шешімді таптыңыз. Бұл шын мәнінде өте қарапайым. Тек CutCopy режимін өшіретін кодтан жолды алып тастаңыз.
Сонымен, дұрыс VBA коды болады:
5954
Ол B3:B5 ауқымын көшіріп, оны D3:D5 үстіне еш қиындықсыз қояды.
Толығырақ оқу: Excel бағдарламасындағы мәндер мен пішімдерді көшіру үшін арнайы VBA қою (9 мысал)
Есте сақтау керек нәрселер
Мұнда мен VBA бағдарламасындағы PasteSpecial әдісімен жұмыс істеу кезінде туындауы мүмкін қиындықтарды ғана көрсеттім. PasteSpecial әдісін егжей-тегжейлі білгіңіз келсе, осы сілтемеге кіріңіз.
Қорытынды
Сонымен, қысқаша айтқанда, мыналар кодыңыздағы 1004 орындалу уақыты қатесін тудыруы мүмкін себептер: PasteSpecial әдісі және диапазон класы сәтсіз аяқталды . Сіз барлық тармақтарды анық түсіндіңіз деп үміттенемін және олар сізге болашақта көп көмектеседі. Басқа себептерді білесіз бе? Ал сізде қиындықтар бар ма? Бізден сұрауға болады. Қосымша жазбалар мен жаңартулар үшін ExcelWIKI сайтымызға кіруді ұмытпаңыз.