2012-11-02 20 views
0

我有一個工作簿,裏面有十個不同的電子表格。每個電子表格都有一個符合以下格式的標題:「項目名稱 - 電子表格名稱 - 修訂日期:」。我可以使用來自標題的用戶輸入來自動填充其他標題嗎?

例如,例如電子表格標題應該是這樣的:

"Test Project - Form 1 - Revision Date: " 
"Test Project - Form 2 - Revision Date: " 
"Test Project - Form 3 - Revision Date: " 

等等..

我想只讓他們鍵入「項目名稱」一週時間,以適應用戶,然後它會用該值自動填充其餘的標題。我知道這可以用細胞很容易地完成,但我對Excel不太熟練。這可以用頭來完成嗎?

回答

1

如果你的意思是隻能在佈局視圖和打印預覽,不能使用簡單的Excel功能設置可以看出頭部。你應該在宏裏做。

如果存儲在單元格A1項目名稱,並在B1單元格中的修訂日期,那麼你可以放置一個按鈕,在同一張紙上。按鈕的文字可以是「填充頭」,而且會運行宏是這樣的代碼:

Sub FillHeaders() 

    For Each wSheet In ActiveWorkbook.Worksheets 

     If wSheet.Name <> "Cover Page" Then 

      wSheet.PageSetup.CenterHeader = _ 
       ActiveSheet.Range("A1") & " - " & _ 
       wSheet.Name & " - Revision date: " & _ 
       ActiveSheet.Range("B1") 

     End If 

    Next wSheet 

End Sub 

這將通過所有表(除了一個名爲「封面」),並設置中心頭文件到您需要的文本。由於ActiveWorksheet是您按下按鈕的地方,因此的A1和B1單元格將在標題文本中使用工作表。

+0

非常感謝你,這工作很好。有沒有什麼方法可以使用VB格式化文本,還是必須手動完成? – TimeBomb006

+1

您可以使用[此處]列出的格式代碼(http://msdn.microsoft.com/zh-cn/library/office/bb225426(v = office.12).aspx)對其進行格式化。格式代碼應位於文本之前。例如,要使其變爲粗體,代碼的第一行必須更改爲:'wSheet.PageSetup.CenterHeader =「&B」&_'。 –

+0

非常感謝。這是我第一次使用VBA。這真有趣。最後一個問題是,有沒有辦法跳過工作簿中的第一個工作表,或者添加一個if語句來檢查工作表的名稱?我有一個名爲「封面」的封面,我不想將它應用到頭文件中。 – TimeBomb006

1

爲用戶使用輸入單元格輸入項目名稱,然後命名該單元格,例如「Project_Name」。

接下來,在電子表格中的每個標題,把下面的公式:

= Project_Name & " - Form XX - Revision Date: " 

(顯然,改變 「XX」 的表格編號)

希望是有道理的。

+0

謝謝,這絕對有道理。但是,當我嘗試這樣做時,它只會將代碼片段作爲文本作爲我的頁面標題放置。公式在頁眉中工作嗎?對不起,我沒有在我的原始文章中澄清,我確實希望將Project_Name自動插入到頁面標題中,而不是列標題中。 – TimeBomb006

+0

對不起,我誤解了你的問題 –

相關問題