我有报告称我每月工作,必须更改标题。我在工作簿中有20个工作表,每个工作表需要有不同的标题。
我想为标题创建一个宏,它将引用每个工作表中的4个单元格。
例如 - 工作表一 - Q115与Q414 - 标题需要引用单元格a150,a151,a152,a153。单元格a152中有一个公式。 2015财年与2014财年的工作表将引用其自身内的单元格a150,a151,a152,a153,等等...我在谷歌搜索后创建了一个宏,但是一旦我运行它,所有工作表都有来自第一个活动工作表的标题。
你能帮我纠正一下吗?
Sub InsertHeaderFooter()
Dim sheetIndex, numsheets As Integer
sheetIndex = 1
numsheets = Sheets.Count
' Loop through each sheet, but don't set any of them to active
While sheetIndex <= numsheets
Dim sheetname, role, labeltext As String
sheetname = Sheets(sheetIndex).name
role = GetRole(mode)
labeltext = "Some text - " & sheetname & " - " & role
strong text
With Sheets(sheetIndex).PageSetup
.LeftHeader = ""
.CenterHeader = vbCr & Range("A150").Text & vbCr & Range("A151").Text & _
vbCr & Range("A152").Text & vbCr & Range("A153").Text
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = "SanDisk Confidential"
.RightFooter = "&[Date] - &[Time]"
End With
sheetIndex = sheetIndex + 1
Wend
End Sub
答案 0 :(得分:2)
更改
.CenterHeader = vbCr & Range("A150").Text & vbCr & Range("A151").Text & _
vbCr & Range("A152").Text & vbCr & Range("A153").Text
到
.CenterHeader = vbCr & .Range("A150").Text & vbCr & .Range("A151").Text & _
vbCr & .Range("A152").Text & vbCr & .Range("A153").Text
Range
引用活动工作表。
.Range
引用了With Sheets(sheetIndex)
表。