vba - Excel VBA - 获取工作表的父窗口

标签 vba excel

我有一个 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,但是如何获取 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")

更一般地说,您想要 avoid Select unless necessary.

关于vba - Excel VBA - 获取工作表的父窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20671374/

相关文章:

excel - 将用户名(数组)与电子邮件(数组)匹配

vba - Excel VBA代码减去

c# - Excel范围使用问题(单元格错误检查)

excel - 如何搜索多个模式以删除行?

r - R中的glm()与Excel中逻辑回归的手动实现之间的结果不一致

vba - 访问 VBA 搜索返回的数据行

javascript - 使用 Knockout : Visible changes not saved 控制网页

add-in - C# : Excel 2007 Addin, 如何 Hook Windows 激活和停用事件

vba - Excel VBA 获取所选数据透视表行的项目详细信息

vba - 在 excel vba 上处理错误