2017-10-28 105 views
0

我有一些很難找到合適的代碼如下目標:Excel宏基於打印一系列表價值

我有一個宏觀的紙張,當我在小區變更的值E5,自動填充sheet1中的某些字段,從其他表的表格中搜索並返回值 - sheetTable)。因此在更換單元格E5之後,sheet1基本上已準備好打印。

我的目標是在一列上sheetTable選擇值的範圍和將它們分配中的每一個細胞上E5工作表Sheet ,並打印各一個。

因此,可以說我選擇3個細胞值:45,50和66當我運行宏,將分配45到細胞E5和打印工作表Sheet1 ,那麼它會分配50至細胞E5和打印工作表Sheet1 ,最後將66分配給單元格E5並打印sheet1

此外,我需要在PDF中打印每個PDF文件,並且生成的PDF文件名應該是E5單元格的值[基本上類似於範圍(e5).value.pdf]。

+0

沒有上得了其他職位無人接聽。並解釋更好的這一個 –

+0

爲什麼你不能只是[編輯](https://stackoverflow.com/posts/46972036/edit)你以前的問題? (而另一個問題**確實**有答案,有人**仍然**積極地試圖幫助你。) – YowE3K

回答

1
Sub printSelectedCells() 
    Dim Path As String 
    Dim Cell As Range 

    Path = "C:\Users\XXXXX\Desktop\" 'Change to suite. 
    'Alternatively you let user select folder by using Application.FileDialog(msoFileDialogFolderPicker) 

    For Each Cell In Selection 
     Sheet1.Range("E5").Value2 = Cell.Value2 
     Sheet1.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
      Path & Sheet1.Range("E5").Value2 & ".pdf", Quality:=xlQualityStandard, _ 
      IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ 
      True 
    Next 

End Sub 
+0

此函數返回Sheet1.Range(「E5」)上的運行時錯誤'424'。Value2 = Cell.Value2。如何整合2 Sub的? –

+0

好吧。現在很好。萬分感謝! –

0

讓我們一次處理一個問題。下列內容是否填寫單元格E5並按順序打印每頁?

Sub Fill_Print() 
    Dim Rng As Range, r As Range 
    Dim sh1 As Worksheet, shTable As Worksheet 

    Set sh1 = Sheets("Sheet1") 
    Set shTable = Sheets("sheetTable") 
    Set Rng = Selection 

    For Each r In Rng 
     sh1.Range("E5").Value = r.Value 
     sh1.PrintOut 
    Next r 
End Sub 
+0

是的這一個很好! –

+0

好極了。你有沒有一個文件路徑,你想保存PDF文件的位置? – Calico