Ši pamoka parodys, kaip naudojant „PasteSpecial“ VBA įklijuoti tik tam tikras langelio savybes (pvz., Reikšmes, formatus)
„Excel“, kai kopijuojate ir įklijuojate langelį, nukopijuojate ir įklijuojate visas langelio savybes: reikšmes, formatus, formules, skaičių formatavimą, kraštines ir kt.
Vietoj to galite „Įklijuoti specialų“, kad įklijuotumėte tik tam tikras langelio savybes. „Excel“ meniu Specialusis įklijavimas pasiekiamas naudojant sparčiuosius klavišus CTRL + ALT + V (nukopijavus langelį):
Čia galite pamatyti visus ląstelių savybių derinius, kuriuos galite įklijuoti.
Jei įrašote makrokomandą naudodami specialų įklijavimo meniu, galite tiesiog naudoti sukurtą kodą. Tai dažnai yra lengviausias būdas naudoti „VBA to Paste Special“.
Įklijuoti vertybes
Įklijuoti vertes įklijuojamas tik langelio „vertė“. Jei langelyje yra formulė, įklijuoti reikšmes įklijuos formulės rezultatą.
Šis kodas nukopijuos ir įklijuos vieno langelio vertes tame pačiame darbalapyje:
12 | Diapazonas („A1“). KopijuotiDiapazonas („B1“). PasteSpecial Paste: = xlPasteValues |
Kopijuoti ir įklijuoti vertę į skirtingą lapą
Šis pavyzdys nukopijuos ir įklijuos atskirų langelių reikšmes skirtinguose darbalapiuose
12 | Skaičiuoklės („Sheet1“). Diapazonas („A1“). KopijuotiSkaičiuoklės („Sheet2“). Diapazonas („B1“). PasteSpecial Paste: = xlPasteValues |
Šie pavyzdžiai nukopijuos ir įklijuos įvairių diapazonų reikšmes:
Kopijuoti ir įklijuoti reikšmes
12 | Diapazonas („A1: B3“). KopijuotiDiapazonas („C1“). PasteSpecial Paste: = xlPasteValues |
Kopijuoti ir įterpti stulpelius
12 | Stulpeliai („A“). KopijuotiStulpeliai („B“). PasteSpecial Paste: = xlPasteValues |
Kopijuoti ir įklijuoti reikšmes
12 | Eilutės (1). KopijuotiEilutės (2). PasteSpecial Paste: = xlPasteValues |
Įklijuokite reikšmes ir skaičių formatus
Įklijavus reikšmes bus įklijuota tik langelio vertė. Formatavimas neįklijuojamas, įskaitant skaičių formatavimą.
Dažnai įklijuodami vertes tikriausiai norėsite įtraukti ir skaičių formatavimą, kad jūsų vertės išliktų suformatuotos. Pažvelkime į pavyzdį.
Čia mes įvertinsime įklijuoti langelį, kuriame yra procentas:
12 | Skaičiuoklės („Sheet1“). Stulpeliai („D“). KopijaSkaičiuoklės („Sheet2“). Stulpeliai („B“). PasteSpecial Paste: = xlPasteValues |
Atkreipkite dėmesį, kaip prarandamas procentinis skaičiaus formatavimas, o vietoje to rodoma apleista dešimtainė vertė.
Vietoj to naudokime įklijuotų verčių ir skaičių formatus:
12 | Skaičiuoklės („Sheet1“). Stulpeliai („D“). KopijaSkaičiuoklės („Sheet2“). Stulpeliai („B“). PasteSpecial Paste: = xlPasteValuesAndNumberFormats |
Dabar matote, kad taip pat įklijuotas skaičių formatavimas, išlaikant procentinį formatą.
.Vertė vietoj .Pasta
Vietoj reikšmių įklijavimo galite naudoti objekto „Range“ ypatybę:
Tai nustatys A2 langelio vertę, lygią B2 langelio vertei
1 | Diapazonas („A2“). Vertė = Diapazonas („B2“). Vertė |
Taip pat galite nustatyti langelių diapazoną, lygų vienos ląstelės vertei:
1 | Diapazonas („A2: C5“). Vertė = diapazonas („A1“). Reikšmė |
arba ląstelių diapazonas, lygus kitam identiško dydžio ląstelių diapazonui:
1 | Diapazonas („B2: D4“). Vertė = diapazonas („A1: C3“). Vertė |
Naudojant ypatybę „Value“, reikia mažiau rašyti. Be to, jei norite įvaldyti „Excel VBA“, turėtumėte žinoti, kaip dirbti su langelių ypatybe „Value“.
Langelio vertė ir 2 vertės nuosavybė
Techniškai geriau naudoti langelio savybę „Value2“. „Value2“ yra šiek tiek greitesnė (tai svarbu tik labai dideliems skaičiavimams), o „Value“ ypatybė gali suteikti sutrumpintą langelio rezultatą, suformatuotą kaip valiuta arba data. Tačiau 99%+ mano matyto kodo naudojama .Value, o ne .Vertė2. Aš asmeniškai nenaudoju .Vertė2, tačiau turėtumėte žinoti, kad ji egzistuoja.
1 | Diapazonas („A2“). Reikšmė2 = Diapazonas („B2“). Vertė2 |
„Copy Paste Builder“
Mes sukūrėme „Copy Paste Code Builder“, kuris leidžia lengvai generuoti VBA kodą, kad būtų galima kopijuoti (arba iškirpti) langelius. Statytojas yra mūsų dalis VBA priedas: „AutoMacro“.
AutoMacro taip pat yra daug kitų Kodų generatoriai, platus Kodų biblioteka, ir galingas Kodavimo įrankiai.
Įklijuoti specialiai - formatai ir formulės
Be įklijavimo verčių, dažniausiai naudojamos specialios įklijavimo parinktys yra įklijuoti formatus ir įklijuoti formules
Įklijuoti formatus
Įklijuoti formatus leidžia įklijuoti visus langelių formatavimus.
12 | Diapazonas („A1: A10“). KopijuotiDiapazonas („B1: B10“). PasteSpecial Paste: = xlPasteFormats |
Įklijuoti formules
Įklijuoti formules įklijuos tik langelių formules. Tai taip pat labai naudinga, jei norite kopijuoti langelių formules, bet nenorite kopijuoti langelio fono spalvų (ar kito langelio formato).
12 | Diapazonas („A1: A10“). KopijuotiDiapazonas („B1: B10“). PasteSpecial Paste: = xlPasteFormulas |
Įklijuokite formules ir skaičių formatus
Panašiai kaip aukščiau įklijuoti reikšmes ir skaičių formatus, taip pat galite nukopijuoti ir įklijuoti skaičių formatus kartu su formulėmis
Čia nukopijuosime langelio formulę tik su apskaitos numerio formatavimu ir įklijuosime formules.
12 | Skaičiuoklės („Sheet1“). Diapazonas („D3“). KopijaSkaičiuoklės („Sheet2“). Diapazonas („D3“). PasteSpecial xlPasteFormulas |
Atkreipkite dėmesį, kaip prarandamas skaičių formatavimas, o vietoj to rodoma apleista neapvalinta reikšmė.
Vietoj to naudokime įklijavimo formulių ir skaičių formatus:
12 | Skaičiuoklės („Sheet1“). Diapazonas („D3“). KopijaSkaičiuoklės („Sheet2“). Diapazonas („D3“). ĮklijuotiSpecial xlPasteFormulasAndNumberFormats |
Dabar matote, kad taip pat įklijuotas skaičių formatavimas, išlaikant apskaitos formatą.
Įklijuoti specialiai - perkelti ir praleisti ruošinius
Įklijuoti specialiai - perkelti
„Paste Special Transpose“ leidžia kopijuoti ir įklijuoti langelius, keičiant orientaciją iš viršaus į apačią į kairę į dešinę (arba atvirkščiai):
12 | Skaičiuoklės („Sheet1“). Diapazonas („A1: A5“). KopijuotiSkaičiuoklės („Sheet1“). Diapazonas („B1“). PasteSpecial Transpose: = Tiesa |
Įklijuoti specialiai - praleisti ruošinius
Praleisti ruošinius yra speciali pasta, kuri, atrodo, nenaudojama taip dažnai, kaip turėtų būti. Tai leidžia kopijuoti ir įklijuoti tik tuščias langelius. Taigi tuščios ląstelės nekopijuojamos.
Šiame pavyzdyje žemiau. Mes nukopijuosime A stulpelį, atliksime įprastą įklijavimą į B stulpelį ir praleisime tuščias įklijas į C stulpelį. Galite pamatyti, kad tuščios ląstelės nebuvo įklijuotos į C stulpelį žemiau esančiame paveikslėlyje.
123 | Skaičiuoklės („Sheet1“). Diapazonas („A1: A5“). KopijuotiSkaičiuoklės („Sheet1“). Diapazonas („B1“). PasteSpecial SkipBlanks: = FalseSkaičiuoklės („Sheet1“). Diapazonas („C1“). PasteSpecial SkipBlanks: = Tiesa |
Kitos specialios įklijavimo parinktys
Įklijuoti specialiai - komentarai
1 | Skaičiuoklės („Sheet1“). Diapazonas („A1“). Kopijuoti Sheets („Sheet1“). Diapazonas („E1“). PasteSpecial xlPasteComments |
Specialus įklijavimas - patvirtinimas
12 | Skaičiuoklės („Sheet1“). Diapazonas („A1: A4“). KopijaSkaičiuoklės („Sheet1“). Diapazonas („B1: B4“). PasteSpecial xlPasteValidation |
Įklijuoti specialiai - naudojant šaltinio temą
123 | Darbo knygos (1). Lakštai („Sheet1“). Diapazonas („A1: A2“). KopijaDarbo knygos (2). Lakštai („Sheet1“). Diapazonas („A1“). ĮklijuotiDarbaknygės (2). Lakštai („Sheet1“). Diapazonas („B1“). PasteSpecial xlPasteAllUsingSourceTheme |
Įklijuoti specialiai - visos, išskyrus kraštus
123 | Diapazonas („B2: C3“). KopijuotiDiapazonas („E2“). PasteSpecialDiapazonas („H2“). PasteSpecial xlPasteAllExceptBorders |
PasteSpecial - stulpelių pločiai
Asmeninė mano mėgstamiausia. „PasteSpecial“ stulpelių pločiai nukopijuos ir įklijuos stulpelių plotį.
123 | Diapazonas („A1: A2“). KopijuotiDiapazonas („C1“). PasteSpecialDiapazonas („E1“). PasteSpecial xlPasteColumnWidths |
„PasteSpecial“ - visi sujungimo sąlyginiai formatai
123 | Diapazonas („A1: A4“). KopijuotiDiapazonas („C1“). PasteSpecialDiapazonas („E1“). PasteSpecial xlPasteAllMergingConditionalFormats |