VBA Value Paste & PasteSpecial

Š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

wave wave wave wave wave