Illeszteni kitekintést excel táblázat formázása, excel minden
Mintegy létrehozása e-maileket az Outlook egy Visual Basic for Applications (VBA) Excel írtam néhány cikket, többek között, hogyan kell beszúrni az egyik standard aláírás a levél - Insert aláírt levélben az Outlook segítségével VBA (ez az alapértelmezett, ha létrehoz betűk re VBA aláírás nem lehet beilleszteni, akkor is, ha úgy van beállítva, e-mail beállítások). de mivel Küldés zajlik Excel, gyakran felmerül egy másik kérdés - hogyan kell beszúrni írni nem csak a szöveget, és az egész tábla? Igen, még az összes formázást sejtek? Ha beszélni a manuális, akkor minden egyszerűen, másolt tartomány, telt írásban - be. De ha megpróbálja ugyanazt a kódot (via copy-paste) - ez nem működik (az Outlook egyszerűen nincs Paste módszerrel vagy valami ilyesmi). Használhatja a SendKeys módszer, de nagyon instabil, és igyekszem, hogy egyáltalán sehol sem kizárólag abban az esetben, ha egy másik is, egyáltalán nem. Ha az átvitel táblázat kód, mint ez:
.Body = tartomány ( "A1"). Value Tartomány ( "A2"). Value
ez lesz csak az értéket sejtek, de nem a formázás, és minden bizonnyal nem egy asztalnál.
A lényeg az, hogy a táblázat a szervezetben a levél egy külön objektum HTML formátumban. És amikor behelyezi a copy-paste az Excel és az Outlook kéz, hogy mindannyiunk számára a piszkos munkát átkódolás másolni a megfelelő HTML. És ez azt jelenti, hogy meg kell valahogy átalakítani a kívánt sejtek ebben a formában, így figyelembe vesszük az összes formázást. Például, van egy tábla:

Most, ebben a táblázatban kell illeszteni a levélben együtt a többi szöveg, hogy volt valami hasonló:

Átalakítani kívánt sejtek egy külön táblázat HTML formátumban használni ezt a funkciót:
Funkció ConvertRngToHTM (RNG Mivel Range)
Dim FSO As Object. ts As Object
Dim sF As String. resHTM As String
Dim wbTmp Ahogy munkafüzet
sF = Environ ( "temp") "/" Formátumot (most. "Dd-mm-yy H-mm-ss") ".htm"
„Transzfer a megadott tartomány egy új könyv
Állítsa wbTmp = munkafüzetek. Add (1)
A wbTmp. Sheets (1)
„Beírása csak a szélessége az oszlopok, értékek és formátumok
A sejteket (1). PasteSpecial xlPasteColumnWidths
A sejteket (1). PasteSpecial xlPasteValues
A sejteket (1). PasteSpecial xlPasteFormats
A sejteket (1). választ
„Az összes törlése a tárgyak (formák, képek, és így tovább.)
„Ha a számok és objektumok van szükség -, hogy távolítsa el ezt a blokkot
On Error Resume Next
DrawingObjects. Látható = True
On Error GoTo 0
„Tartsuk a könyvet, mint egy weboldal (alakítsa a tartalmat HTML-kód)
A wbTmp. PublishObjects. Add (_
SourceType. = XlSourceRange. Fájlnév. = SF. _
Lap. = WbTmp. Sheets (1). Név. Forrás. = WbTmp. Sheets (1). UsedRange. Cím. _
„Nyisd meg az új fájl szöveges és olvassa el a tartalmát
Állítsa FSO = CreateObject ( "Scripting.FileSystemObject")
Set ts = FSO. GetFile (SF). OpenAsTextStream (1. - 2)
resHTM = ts. ReadAll
„Igazítja a táblázatot a bal szélén (ha kell hagynia a középső -, hogy távolítsa el ezt a sort)
ConvertRngToHTM = Cserélje (resHTM "align = center x: publishsource =". "Align = bal x: publishsource =".)
„Zárja be a könyvet, és eltávolítja az ideiglenes
wbTmp. Bezár False
„Egyértelmű az objektum változók
Meg lehet változtatni, hogy minden szükséges.
Ami fontos megjegyezni, hogy ha be egy táblázatot mellett a terv formázni írni többi címke HTML, akkor a legjobb, hogy az összes formázást, és csak a legvégén, az utolsó lépés, adjunk hozzá egy táblázatot a levélben. Ellenkező jelölés a táblázat „úszni”.
Remélem most már nem lesz nehéz, hogy a hozzászólások szebb és ügyes.
Megértem, hogy sokan szeretnénk, hogy e tömeges levelezést. Ehhez az szükséges, hogy összekapcsolják a kód ebben a cikkben a kódot a cikk Hogyan levelet küld az Excel?. Van egy példa üzenetküldés az Outlook címzettek listáját.
Úgy döntöttünk, hogy adjunk egy egyszerű kis funkció a cikk, amely nem tárol semmilyen fájlt, formázott táblázatokat és szinte nincs semmi felesleges mozgások. Csak helyezi írásban értékeit minden sejt a megadott tartomány szöveges formában, formázás nélkül (kivéve, hogy a hozzáadott sortöréseket és a lapok, hogy legalább valamilyen táblázatkezelő és a szöveg nem volt egyetlen vonal):