简体   繁体   中英

Transfer Data from Excel to Word using Dictionaries & Bookmarks

I'm looking for a way to transfer data from a spreadsheet (by using the dictionary add on) into set bookmarks in a word document.

The final product will need to iterate down each row of data in the spreadsheet -then- fill in the data into the current bookmarks in word -then- delete the previous bookmarks -then- continue the loop...

But if anyone can help me in just passing the data from the excel to the bookmarks in word a single time I'd really appreciate it as I can easily run with it from there.

Here is what I have so far (I'm stuck right at the bottom of the code!):

Dim columnLocations As New Dictionary
Dim bookmarkOrder As New Dictionary
Dim solutionWorkbook As Workbook

Sub Main()
  Set solutionWorkbook = ActiveWorkbook

  columnLocations.RemoveAll
  bookmarkOrder.RemoveAll

  Call PopulateColumnLocations
  Call PopulateBookmarkMappings
  Call DictionaryData
End Sub

Sub PopulateColumnLocations()
  'Loop through row1 to populate dictionary. key = header name, value = column number
  Sheets("Data").Select
  For Each cell In solutionWorkbook.Worksheets("Data").Range("A10", Range("A10").End(xlToRight)).Cells
    columnLocations.Add Trim(cell.Value), cell.Column
  Next
End Sub

Sub PopulateBookmarkMappings()
  'Loop through row1 to populate dictionary. key = header name, value = collumn number
   Sheets("Mappings").Select
  Dim Var As Object
  Dim Key As Object

  For Each cell In solutionWorkbook.Worksheets("Mappings").Range("A2", Range("A2").End(xlDown)).Cells
    Debug.Print Cells(cell.Row, 2).Value
    Debug.Print cell.Value
    bookmarkOrder.Add Trim(cell.Value), Cells(cell.Row, 2).Value 'the 2 is the column which has the bookmark name in
  Next
End Sub

Sub DictionaryData()
  Sheets("Data").Select
  Dim count As Integer
  count = 1
  'Loop through all rows in input data sheet
  For Each cell In solutionWorkbook.Worksheets("Data").Range("A11", Range("A11").End(xlDown)).Cells
    Dim TweetSummary As String
    TweetSummary = solutionWorkbook.Sheets("Data").Cells(cell.Row, columnLocations.Item("Summary")).Value

    Dim TweetDate As String
    TweetDate = solutionWorkbook.Sheets("Data").Cells(cell.Row, columnLocations.Item("Date")).Value

    Dim TweetURL As String
    TweetURL = solutionWorkbook.Sheets("Data").Cells(cell.Row, columnLocations.Item("URL")).Value

    Dim TweetFollowers As String
    TweetFollowers = solutionWorkbook.Sheets("Data").Cells(cell.Row, columnLocations.Item("Twitter Followers")).Value

    Dim TweetFollowing As String
    TweetFollowing = solutionWorkbook.Sheets("Data").Cells(cell.Row, columnLocations.Item("Twitter Following")).Value

    Dim TweetTweets As String
    TweetTweets = solutionWorkbook.Sheets("Data").Cells(cell.Row, columnLocations.Item("Twitter Tweets")).Value

  Next
End Sub

Sub Worddoc()
  Dim LaunchWord As Object
  Dim tweetWord As Object
  Dim Path As String
  Dim tBookmark As Bookmark
  Path = solutionWorkbook.Path & "\B_watch_social_twitter_template.dot"

  Set LaunchWord = CreateObject("Word.Application")
  Set tweetWord = LaunchWord.Documents.Add(Path)

  tweetWord.Select

 ''IM STUCK HERE!!!
End Sub

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM