我有一个 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
,但是如何获取 contentSheet
的 Window
呢?
还有更好的复制和粘贴方法吗?
最佳答案
我认为您想要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")
更一般地说,您想要 avoid Select
unless necessary.
关于vba - Excel VBA - 获取工作表的父窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20671374/