Excel VBA – 获取工作表的父窗口

我有一个从模板中插入一个标题,并冻结活动工作表的第一行,它被写为,

Sub HeaderInsert(headerTemplate As Worksheet) headerTemplate.Rows("1:1").Copy ActiveSheet.Rows("1:1").Select ActiveSheet.Paste With ActiveWindow .SplitColumn = 0 .SplitRow = 1 .FreezePanes = True End With End Sub 

我想把它变成一个函数,通过表单插入标题。 所以这会写,

 Function HeaderInsert(headerTemplate As Worksheet, contentSheet as Worksheet) 

ActiveSheet成为contentSheet ,但我怎样才能获得contentSheetWindow

也是一个更好的方法来做这个复制和粘贴?

我想你想contentSheet.Parent.Windows(1) ,例如:

 Sub test() Dim ws As Excel.Worksheet Dim wb As Excel.Workbook Set ws = ActiveSheet Set wb = ws.Parent Debug.Print wb.Windows(1).Caption End Sub 

至于更好的粘贴方式:headerTemplate.Rows(“1:1”)。复制ActiveSheet.Rows(“1:1”)

更一般地说,你要避免Select除非必要。