This is amazing - exactly what I needed...but I can't get it to work. The 'Change Tags' Macro works great (I think) but I'm being directed to an error in the macro after I've selected the file as prompted by the 'download log data' button.

Thank you so so much for your help - this really does mean so much.

See code below: (I've put in bold and red the sections that are being highlighted in the code)




Sub AAA()


Dim wdApp As Object 'New Word.Application
Dim boolIsWdRun As Boolean
Dim wdDoc As Object 'Word.Document
Dim CCtrl As Object 'Word.ContentControl
Dim varDocFile As Variant
Dim WkSht As Worksheet
Dim i As Long
Dim dDate As Date
Dim varDaysWeek As Variant
Dim strDay As String
Dim varTag As Variant
Dim strSubject As String
Dim lSession As Long
Dim strDescript As String
Dim lLstRow As Long

Const wdContentControlCheckBox As Long = 8
Const wdContentControlDate As Long = 6
Const wdContentControlDropdownList As Long = 4
Const wdContentControlRichText As Long = 0
Const wdContentControlText As Long = 1




varDocFile = Application.GetOpenFilename("WinWord Files (*.doc*), *.doc*")
If TypeName(varDocFile) = "Boolean" Then Exit Sub


Application.ScreenUpdating = False


On Error Resume Next
boolIsWdRun = True
Set wdApp = GetObject(, "Word.Application")


If Err.Number <> 0 Then
Err.Clear


Set wdApp = CreateObject("Word.Application")
wdApp.Visible = True
boolIsWdRun = False
End If
On Error GoTo 0


Set wdDoc = wdApp.Documents.Open(Filename:=varDocFile, AddToRecentFiles:=False, Visible:=False)




varDaysWeek = Array("Mon", "Tue", "Wed", "Thu", "Fri")
i = 1


With wdDoc
For i = 0 To UBound(varDaysWeek)

For Each CCtrl In .ContentControls
If CCtrl.Tag = "Date_" & varDaysWeek(i) Then
Exit For
End If
Next CCtrl


If CCtrl Is Nothing Then
Stop
End If


strDay = varDaysWeek(i)
dDate = CDate(Split(CCtrl.Range.Text, ",")(1))




For Each CCtrl In .ContentControls
With CCtrl
If Len(.Title) > 0 Then
If Not .Title Like "Date_*" Then
Select Case .Type
Case Is = wdContentControlCheckBox
Stop
Case wdContentControlDropdownList, wdContentControlRichText, wdContentControlText 'wdContentControlDate,
varTag = Empty
varTag = Split(.Tag, "_")


If UBound(varTag) = 2 Then
If varTag(1) = strDay Then
strSubject = varTag(0)
lSession = CLng(varTag(2))


strDescript = .Range.Text

If LCase(strDescript) Like LCase("Choose an item*") Then
strDescript = vbNullString
End If


On Error Resume Next
Set WkSht = ThisWorkbook.Worksheets(strSubject)
On Error GoTo 0


If WkSht Is Nothing Then
Stop
End If

lLstRow = WkSht.Cells(Rows.Count, "A").End(xlUp).Row + 1


WkSht.Cells(lLstRow, "A").Value = dDate
WkSht.Cells(lLstRow, "B").Value = lSession
WkSht.Cells(lLstRow, "C").Value = strDescript
End If
End If
Case Else
End Select
End If
End If
End With
Next CCtrl


Next i


.Close SaveChanges:=False
End With


If Not boolIsWdRun Then
wdApp.Quit
End If


Set wdDoc = Nothing: Set wdApp = Nothing: Set WkSht = Nothing


MsgBox "Done"
End Sub