Hirdetés

Új hozzászólás Aktív témák

  • bteebi

    veterán

    Sziasztok!

    Kicsit rendhagyó, mert igazából Worddel kapcsolatos, viszont VBA-s kérdés, úgyhogy szerintem érdemesebb itt feltenni, mint a Word topikban. Van egy Word file, ami a lenti makrón felül mezőket tartalmaz. Azt szeretném, hogy egy dialógusból kiválasztott másik Word file-ban a megegyező nevű mezők tartalmát felülírja a kiindulási file-ban lévő értékekkel.

    Ez utóbbinál akadtam el. Elvileg egy mezőnek a ActiveDocument.Fields(n).Result adja meg az értékét, így például a MsgBox mezo.Result működik is, viszont arra, hogy mezo.Result = "1" Type mismatch hibakódot kapok. Ezen kívül azt se tudom, hogy azt hogy lehetne megcsinálni, hogy (csak) azoknak a mezőknek a tartalmát írja felül a makró a megnyitandó file-ban, amiknek az eredeti file-ban is ugyanaz a neve (pl. Cim1, Cim2, stb.). A meglévő kód:

    Sub MezoToltes()
    Dim innen As Document, ide As Document, mezo As Field, WordApp As Application
    Set innen = ActiveDocument
    Set ablak = Application.FileDialog(msoFileDialogOpen)
    ablak.Filters.Clear
    ablak.Filters.Add "Word dokumentumok", "*.doc*"
    ablak.Title = "Válaszd ki a feltöltendő file-t"
    ablak.InitialFileName = innen.Path
    ablak.InitialView = msoFileDialogViewList
    ablak.FilterIndex = 1
    filechosen = ablak.Show
    If filechosen = -1 Then
    fajlnev = ablak.SelectedItems(1)
    Set WordApp = CreateObject("Word.Application")
    WordApp.Documents.Open fajlnev
    WordApp.Visible = True
    Else: Exit Sub
    End If
    For Each mezo In innen.Fields
    mezo.Result = "1"
    Next mezo
    innen.Fields.Update
    End Sub

    Előre is köszönöm a javaslataitokat! :R

Új hozzászólás Aktív témák