2013-12-19 147 views
0

我被要求在一個工作表中根據信息構建報告。有超過30個報告要建立。我已經設置了用於計算的單元格的鏈接(數據可以從另一個表格中過濾以供報表使用)作爲模板,並且可以通過將模板複製到新創建的表格並更改一個單元格來生成新報表表示每個報告的具體標識符。
這裏的問題是:
我仍然需要複製並粘貼30次並更改報告的標識符。有沒有建立一個基於VBA或其他的程序來自動化利用已經構建的模板的過程,而無需爲每個單元值賦值進行重新編碼?非常感謝你!Excel自動報告模板

回答

0

你在這裏。創建名爲「Template」和「ControlSheet」的兩張表。在「ControlSheet」上創建兩列:第一列包含新工作表的名稱,第二列包含參數值。然後添加此宏:

Public Const TemplateSheetName = "Template" 
Public Const ControlSheetName = "ControlSheet" 
Public Const ControlSheetFirstCell = "A2" 
Public Const TargetCell = "B5" 

Sub ParseReport() 
    Dim i As Integer 
    Dim NextSheetName As String 
    Dim NextSheetValue As Variant 
    i = 0 
    Do While True 
     NextSheetName = Sheets(ControlSheetName).Range(ControlSheetFirstCell).Offset(i, 0).Cells(1, 1).Value 
     If NextSheetName = "" Then 
      Exit Do 
     End If 
     NextSheetValue = Sheets(ControlSheetName).Range(ControlSheetFirstCell).Offset(i, 0).Cells(1, 2).Value 
     Sheets(TemplateSheetName).Copy After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count) 
     ActiveSheet.Name = NextSheetName 
     ActiveSheet.Range(TargetCell) = NextSheetValue 
     i = i + 1 
    Loop 
End Sub 

ControlSheetFirstCell - 列中控制表中的第一個單元格,其中包含要創建圖紙的名稱。這些值位於右側的列中。 TargetCell - 您需要編寫報告參數的新創建工作表上的單元格

+0

對不起,我遲到的回覆。非常感謝你! – user3113633

+0

不客氣!如果您將我的答案標記爲解決方案,我將不勝感激。謝謝。 – Taosique