У меня есть таблица в MSWord, которая содержит имена, дату и нечисловые данные. Я хотел бы написать макрос, который извлекает эти данные и делает так, что когда пользователь нажимает кнопку «Сохранить как», предлагаемое имя файла упорядочивает данные в определенном порядке, разделенные точками.VBA для создания save-as filename из данных в документе
Вот что таблица выглядит следующим образом:
Первая колонка:
Date 04/10/13
Name 1 Arthur Z
Name 2 Bea Y
Title 1 Cars
Вторая колонка:
Title 2 Boats
Company Burger King
Color Red
Name 3 Caroline X
Мне нужно имя файла, чтобы быть в следующем формате:
Burger King.Red.Y.Bea.04-10-13.Arthur Z.(extension)
Код, который у меня есть:
Sub FileSaveAs()
ActiveDocument.Fields.Update
ActiveDocument.Fields.Update
'Updated twice because some of the fields that need
'to be updated rely on fields below it and since it
'doesn't take too long I didn't bother figuring out
'how to make it update backwards--but if anyone knows
'how, please lmk
Dim r As Range
Set r = ActiveDocument.Range
Dim fld As Field
Dim iCnt As Integer
For Each fld In ActiveDocument.Fields
'All this field and highlight stuff is to edit the
'document down--I have all this done
If fld.Type = wdFieldFormTextInput Then iCnt = iCnt + 1
Next
If iCnt >= 1 Then
Dim Response As VbMsgBoxResult
Response = MsgBox("Delete notes and shading?", vbYesNo + vbQuestion)
If Response = vbYes Then
With r.Find
.Highlight = True
.Forward = True
While .Execute
r.Delete
Wend
End With
For Each fld In ActiveDocument.Fields
fld.Select
If fld.Type = wdFieldFormTextInput Then
fld.Unlink
End If
Next
With Dialogs(wdDialogFileSaveAs)
.Name = "Burger King.Red.Y.Bea.04-10-13.Arthur Z.docm"
.Show
End With
EndUndoSaver
Exit Sub
ElseIf Response = vbNo Then
With Dialogs(wdDialogFileSaveAs)
.Name = "Burger King.Red.Y.Bea.04-10-13.Arthur Z.docm"
.Show
End With
End If
EndUndoSaver
Exit Sub
ElseIf iCnt = 0 Then
With Dialogs(wdDialogFileSaveAs)
.Name = "Burger King.Red.Y.Bea.04-10-13.Arthur Z.docm"
.Show
End With
End If
Set fld = Nothing
End Sub
Именно в этой части этого вы столкнулись с проблемой? Вы вообще знаете какой-либо VBA? Если да, что вы пробовали до сих пор? –
Я делаю, но недостаточно, чтобы получить конкретное имя файла. До сих пор я достаточно закодирован, чтобы заставить его работать так, что когда я нажимаю «Сохранить как», я могу сделать предлагаемое имя файла любым текстом, который я хочу, в макросе, например «CRAZY.doc». Я пытаюсь выяснить, как получить макрос для настройки предложенного имени файла с помощью таблицы. – user2259920
Честно говоря, это относительно легко. Покажите код, который будет проще ... –