Змест
Адной з самых распаўсюджаных праблем, з якімі мы сутыкаемся падчас працы з капіраваннем і ўстаўкай у VBA , з'яўляецца памылка падчас выканання 1004 : Памылка спецыяльнага метаду класа дыяпазону . У гэтым артыкуле я пакажу вам, якія магчымыя прычыны гэтай памылкі і як іх вырашыць, з адпаведнымі прыкладамі і ілюстрацыямі.
Спампаваць Практычны сшытак
Спампуйце гэты практычны сшытак, каб практыкавацца, пакуль вы чытаеце гэты артыкул.
PasteSpecial Method Failed.xlsm
PasteSpecial Method of Range Class Failed: Прычыны і рашэнні
Без далейшых затрымак пяройдзем да нашага асноўнага абмеркавання. Гэта значыць, якія могуць быць магчымыя прычыны гэтай памылкі і як іх вырашыць.
Прычына 1: Доступ да метаду PasteSpecial без капіравання чаго-небудзь
Гэта самы агульная прычына памылкі. Гэта значыць, спроба атрымаць доступ да метаду PasteSpecial без капіравання нічога.
Каб гэта ясна зразумець, праверце наступны код VBA .
⧭ Код VBA:
4815
Тут мы выкарыстоўвалі метад PasteSpecial VBA без капіраванне чаго-небудзь. Такім чынам, пры запуску Excel будзе адлюстроўвацца памылка выканання 1004 .
⧭ Рашэнне:
Каб вырашыць гэту праблему, спачатку трэба скапіяваць дыяпазон вочак, а затым атрымаць доступ да метаду PasteSpecial .
3402
Калі вы запускаеце гэты код, гэта будзеустаўце формулы дыяпазону B3:B5 актыўнага аркуша ў выбраны дыяпазон.
Чытаць далей: Метад PasteSpecial класа Worksheet Failed (Прычыны і рашэнні)
Прычына 2: Доступ да метаду PasteSpecial з арфаграфічнай памылкай
Гэта яшчэ адна распаўсюджаная прычына памылка. Гэта значыць, каб атрымаць доступ да метаду PasteSpecial з арфаграфічнымі памылкамі ў любым аргументе.
Паглядзіце на наступны код VBA , каб зрабіць гэта зразумелым. Тут мы зрабілі арфаграфічную памылку ў аргументе xlPasteAll .
⧭ Код VBA:
3012
Калі вы запусціце гэты код, вы атрымаеце памылку выканання 1004 .
⧭ Рашэнне:
Рашэнне лёгкае. Я ўпэўнены, што вы ўжо здагадаліся пра гэта. Проста пераканайцеся, што ўсе аргументы напісаны правільна.
І памылка аўтаматычна знікне.
Дадатковая інфармацыя: Як выкарыстоўваць Paste Спецыяльная каманда ў Excel (5 прыдатных спосабаў)
Падобныя паказанні
- Excel VBA: скапіруйце дыяпазон у іншую кнігу
- Скапіруйце і ўстаўце значэнні ў наступны пусты радок з дапамогай Excel VBA (3 прыклады)
- Ужыце VBA PasteSpecial і захавайце зыходнае фарматаванне ў Excel
- Як скапіяваць адно і тое ж значэнне ў некалькіх ячэйках у Excel (4 метады)
- Excel VBA для капіравання радкоў у іншы аркуш на аснове крытэрыяў
Прычына 3: Адкрыццё новагаПрацоўная кніга пасля капіравання, якая адмяняе рэжым капіравання/ўстаўкі
Гэта яшчэ адна важная прычына памылкі. Гэта значыць зрабіць што-небудзь, што адмяняе рэжым капіравання/ўстаўкі перад устаўкай.
Паглядзіце на наступны код, каб ясна зразумець.
⧭ Код VBA:
4112
Тут мы скапіявалі дыяпазон B3:B5 з Sheet1 рабочай кнігі пад назвай Workbook1 .
Затым мы стварылі новую кнігу пад назвай Workbook2 у той жа папцы і паспрабавалі ўставіць скапіраваны дыяпазон у дыяпазон B3:B5 Sheet1 гэтай працоўнай кнігі.
Але калі мы запускаем код, ён адлюстроўвае памылку PasteSpecial Method of Range Class Failed Error, таму што ў той момант, калі мы ствараем новую працоўную кнігу, рэжым капіравання/ўстаўкі будзе адменены.
⧭ Рашэнне:
Каб вырашыць гэтую праблему, спачатку напішыце уніз па радках кода, каб стварыць новую працоўную кнігу пад назвай Workbook2 .
Затым устаўце радкі для актывацыі Workbook1 і скапіруйце з яе патрэбны дыяпазон.
І, нарэшце, актывуйце Workbook2 і ўстаўце туды скапіраваны дыяпазон.
6685
Запусціце гэты код. Ён скапіруе дыяпазон B3:B5 з Sheet1 з Workbook1.
І ўставіць яго у Sheet1 толькі што створанай працоўнай кнігі пад назвай Workbook2 .
⧭ Мера засцярогі:
Відавочна, не забывайце трымаць Workbook1 адкрытым падчас запускукод.
Дадатковая інфармацыя: Як адключыць капіраванне і ўстаўку ў Excel без макрасаў (з 2 крытэрыямі)
Прычына 4: Пераключэнне Application.CutCopyMode у False, што адмяняе рэжым капіравання/ўстаўкі
Нарэшце, можа быць іншая прычына ўзнікнення памылкі. Мы можам памылкова адключыць Application.CutCopyMode перад доступам да метаду PasteSpecial .
Хоць гэта не вельмі распаўсюджаная практыка, усё ж часам мы робім гэта, калі хочам працаваць з вялікай колькасцю радкоў.
Глядзіце наступны код, каб зразумець яго. Тут мы скапіравалі дыяпазон B3:B5 , але адмянілі CutCopyMode перад яго ўстаўкай.
⧭ Код VBA:
5954
Калі вы запусціце код, ён пакажа памылку PasteSpecial Method of Range Class Failed .
⧭ Рашэнне:
Мяркую, вы ўсе здагадаліся пра рашэнне. На самай справе гэта даволі проста. Проста выдаліце з кода радок, які адключае рэжым CutCopy .
Такім чынам, правільны код VBA будзе:
9187
Яно скапіруе дыяпазон B3:B5 і ўставіць яго па-над D3:D5 без праблем.
Дадатковая інфармацыя: VBA Paste Special для капіравання значэнняў і фарматаў у Excel (9 прыкладаў)
Пра што трэба памятаць
Тут я паказаў толькі праблемы, з якімі вы можаце сутыкнуцца падчас працы з метадам PasteSpecial у VBA. Калі выхочаце даведацца пра метад PasteSpecial у дэталях, перайдзіце па гэтай спасылцы .
Выснова
Такім чынам, карацей кажучы, гэтыя гэта прычыны, якія могуць выклікаць памылку падчас выканання 1004: PasteSpecial Method od Range Class Failed у вашым кодзе. Я спадзяюся, што вы дакладна зразумелі ўсе пункты, і яны вельмі дапамогуць вам у будучыні. Ці ведаеце вы якія-небудзь іншыя прычыны? А ці ёсць у вас праблемы? Не саромейцеся пытацца ў нас. І не забудзьцеся наведаць наш сайт ExcelWIKI , каб атрымаць больш паведамленняў і абнаўленняў.