データのリストをループして、要約ページの1つのセルの値を変更するVBAスクリプトをまとめました。そのセルは数式を駆動します。各反復の後、関心のあるセル範囲はPDFとして保存されます。Excel VBAスクリプトの[名前を付けて保存]ダイアログボックスを避ける
私は、それぞれのループで '名前を付けて保存'ダイアログボックスが生成されるたびに手動で入力する必要がないようにするために探しています。このスクリプトをデプロイすると、1k +の繰り返しを見ることができます。
Sub AlterID()
Dim ws As Worksheet
Dim strPath As String
Dim myFile As Variant
Dim strFile As String
Set ws = Worksheets("Summary Data")
For Each c In Worksheets("Data").Range("A2:A11").Cells
Worksheets("Summary Data").Range("B1").Value = c.Value
strFile = ws.Range("D3").Value
strFile = ThisWorkbook.Path & "\" & strFile
myFile = Application.GetSaveAsFilename _
(InitialFileName:=strFile, _
FileFilter:="PDF Files (*.pdf), *.pdf", _
Title:="Select Folder and FileName to save")
If myFile <> "False" Then
ws.Range("D3:H9").Select
Selection.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=myFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End If
Next
End Sub
にファイルを保存するために使用するサブありますあなたが手動でそれらを指定していない場合に生成されるファイル名... –
これは知識の私の欠如が出現するところであると思います。ファイルの場所は静的なので、ファイルパスをハードコードすることができます。ファイルの名前は、セルの値から得られます(ここでのように)。 – regularGuy
なぜ 'Filename:= strFile'と' GetSaveAsFilename 'を取り除くのですか? – Jeeped