PC Fórum
  • Kisebb betűméret
  • Eredeti betűméret
  • Nagyobb betűméret

Excel-ből másolás word-be / objektum-ba makróval
50

2013-09-03T04:57+02:00
vakrepulo
vakrepuloPC Fórum
regisztrált tag
Sziasztok!

Feladat: Excelben van egy objektumnként beágyazott word ('Munka1' munkalapon). A szükséges művelet: A word-öt megnyitni és az excel egy bizonyos tartományát belemásolni. (a tartomány legyen mondjuk a 'munka1' munkalap A1:B2 része).

Azt meg tudtam csinálni (lopással mástól), hogy egy új word-öt nyitok és abba rakom bele. Ez kb így néz ki:

Sub CopyWord()
Dim word As word.Application
Dim MelyikSheeten As String

Set word = New word.Application
word.Visible = True
With word
.Documents.Add
MelyikSheeten = "Munka1"
Worksheets(MelyikSheeten).Range("A1:B2").Select
Selection.Copy
.Selection.Paste
.Selection.Sections.Add
End with
End Sub

De nekem az objektumos word-öt kellene megnyitnom, mert speckó a fej és lábléce, pl képek vannak beillesztve benne.

Az is megy hogy megnyissam az objektumot:

Sheets("Munka1").Select
ActiveSheet.Shapes("Object 2").Select
Selection.Verb Verb:=xlPrimary

csak nem rakja be a másolandó részt, már a ".Documents.Add" résznél leakad.

Valmai olyat sejtek, hogy ezt a részt:

Dim word As word.Application
Set word = New word.Application

kellene átirni, mert itt nem új word van henem objektum, leeht szóba kell jönnie a createobject parancsank is a set mögött, de nem értek hozzá, amatőr vagyok csak mások excel makróit tudom összelopkodni.

Tudnátok segíteni?
Köszi
vakrep
Mutasd a teljes hozzászólást!
Excel-ből másolás word-be / objektum-ba makróval
2013-09-03T04:57+02:00
vakrepulo
vakrepuloPC Fórum
regisztrált tag
Itt ugyan pont fordított a szitu, de ez a topic talán segít.
(Egyelőre én sem értem hogyan is működik, de most nincs időm kísérletezni vele.)
Mutasd a teljes hozzászólást!
Oszd meg másokkal is!

hali jó ötletet adott a link, ez lett a megoldás érdemi része:

Dim word As Object
Set word = GetObject(, "word.Application")
word.Selection.Paste

most persze ujabb bajom merült fel, ha soszor futtatom le a makrót, mert pl megváltoztatom az A1:B2 tartomány értékeit és frissíteni akarom a word-ben is akkor egymás alá másolja, tehát 1. futtatáskor bemásolja és ezzel az objektumként beágyazott word is módosul, második futtatáskor az elsőnek bemásolt alá másolja újra.

tehát kellen nekem valami nagyon egyszerű sor, ami a másolás előtt törli a word teljes tartalmát (fejlécet és láblécet persze nem)

vakrep

Mutasd a teljes hozzászólást!
Szia,

Valami ilyesmi lesz:

Selection.WholeStory
Selection.Delete Unit:=wdCharacter, Count:=1

Üdv: Sznido
Mutasd a teljes hozzászólást!
köszi
közben én is leneteztem pont ugyan ezt a két sort

most gondba vagyok, hogy kinek toljam az 50 pontot

mert valójában 2 kérdés volt két jó válasszal
Mutasd a teljes hozzászólást!
Az első kérdés komolyabb volt!

Üdv: Sznido
Mutasd a teljes hozzászólást!
Oszd meg másokkal is!