View Single Post
 
Old 08-13-2018, 04:20 AM
macropod's Avatar
macropod macropod is offline Windows 7 64bit Office 2010 32bit
Administrator
 
Join Date: Dec 2010
Location: Canberra, Australia
Posts: 22,465
macropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond repute
Default

Try:
Code:
Sub GetExcelData()
Application.ScreenUpdating = False
'Note: A VBA Reference to the Excel Object Model is required, via Tools|References
Dim xlApp As New Excel.Application, xlWkBk As Excel.Workbook, xlWkSht As Excel.Worksheet
Dim StrWkBkNm As String, i As Long, j As Long, r As Long
StrWkBkNm = ThisDocument.Path & "\Data to fill.xlsx"
If Dir(StrWkBkNm) = "" Then
  MsgBox "Cannot find the designated workbook: " & StrWkBkNm, vbExclamation
  Exit Sub
End If
With xlApp
  .Visible = False
  .DisplayAlerts = False
  Set xlWkBk = .Workbooks.Open(FileName:=StrWkBkNm, ReadOnly:=True, AddToMRU:=False)
End With
Set xlWkSht = xlWkBk.Worksheets("Sheet1")
With ActiveDocument
  For i = 1 To .Tables.Count
    r = i + 1
    With .Tables(i)
      .Cell(2, 2).Range.Text = "PV: " & xlWkSht.Range("B" & r).Value
      With .Cell(3, 2).Range
        .ContentControls(1).Checked = (xlWkSht.Range("F" & r).Value = "Y")
        .ContentControls(2).Checked = (xlWkSht.Range("F" & r).Value = "Y")
        .ContentControls(3).Checked = (xlWkSht.Range("G" & r).Value = "Y")
      End With
      With .Cell(3, 1).Range
        With .ContentControls(1)
          .Type = wdContentControlText
          .Range.Text = xlWkSht.Range("A" & r).Value
          .Type = wdContentControlDropdownList
        End With
        With .ContentControls(2)
          .Type = wdContentControlText
          .Range.Text = xlWkSht.Range("D" & r).Value
          .Type = wdContentControlDropdownList
        End With
        With .ContentControls(3)
          .Type = wdContentControlText
          .Range.Text = xlWkSht.Range("C" & r).Value
          .Type = wdContentControlDropdownList
        End With
      End With
    End With
  Next
End With
xlWkBk.Close False
xlApp.Quit
Set xlWkSht = Nothing: Set xlWkBk = Nothing: Set xlApp = Nothing
Application.ScreenUpdating = True
End Sub
Note: You would get more meaningful content in the dropdowns if your Excel data actually matched the dropdown choices...
__________________
Cheers,
Paul Edstein
[Fmr MS MVP - Word]
Reply With Quote