【问题标题】:Excel Macro, merge sheetsExcel 宏,合并工作表
【发布时间】:2011-05-15 23:54:31
【问题描述】:

我有一个包含 5 张工作表的 excel 文件。第一张工作表包含从 A1 到 A4 单元格的超链接,其中一些名称指向工作簿中相应的 4 张工作表。 我需要编写一个由while循环组成的vba函数,循环遍历工作表1中的每个单元格,然后在读取工作表1中的第一个单元格后,它应该转到连接的工作表,从中复制所有数据并将其放入不同的工作簿并再次转到工作表 1 中的下一个单元格,复制数据并将数据附加到新工作簿并重复该过程,直到找到一个空单元格。 请提供一个示例,因为我是 vba 编程的新手。 提前谢谢你

【问题讨论】:

  • 到目前为止你有没有尝试过?此外,链接的示例是什么 - 到一系列单元格或..?
  • 链接将指向工作表中的特定单元格,例如 A2。
  • 实际上有一种简单的方法可以让您获取此代码。您可以录制宏(在执行操作时)、停止录制并查看代码。您只需将这些步骤概括到您的 while 循环中。试一试,我会帮助你度过难关。
  • @jonsca....thnx a ton....你让我的生活变得轻松:)
  • @S.. 没问题 :) 我对超链接有所了解。

标签: excel vba


【解决方案1】:

出于演示目的,因为 OP 最初要求提供样本。这将获取工作簿第一张表中定义的 4 个单元格,并从第二张和第三张表中收集选定单元格的数据并将其粘贴到第四张表中。

第一张:

     A
1  Sheet2!C8    (these are all hyperlinks)
2  Sheet2!G15 
3  Sheet3!C10
4  Sheet3!D13

宏代码:

Sub Test2()
    Dim cell As Range
    Dim sel As Range
    Dim index As Integer
    index = 1
    Set sel = Range(Cells(1, 1), Cells(1.1).End(xlDown))
    For Each cell In sel            
        cell.Hyperlinks(1).Follow 
        ActiveCell.Copy
        Sheets(4).Select
        Range("A" & index).PasteSpecial
        index = index + 1
    Next

End Sub

显然很多都是针对这种情况进行硬编码的,我相信还有更有效的方法可以做到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    相关资源
    最近更新 更多