我有一个Sub,它从模板中插入一个标题并冻结活动工作表的顶行,该行被写为,
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
,但我怎么能得到Window
的contentSheet
?
还有一种更好的方法来复制和粘贴吗?
我想你想要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
.