【问题标题】:Create new sheet from button cell that pulls data into new sheet从按钮单元创建新工作表,将数据拉入新工作表
【发布时间】:2018-06-21 15:48:59
【问题描述】:

当您单击一个绿色单元格时,一个新工作表的新工作表名称与绿色单元格的名称相匹配。绿色单元格是父母,“x”代表孩子。所以在新创建的工作表中会有两列。一列包含父母 ID,第二列将显示子 ID。(下图演示)。做这个的最好方式是什么?

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    由于您没有尝试过,我只会为您提供开始解决问题所需的基本信息。这需要粘贴在您的数据来源的工作表上
    (VBE > Sheet X > Paste code here)

    每次双击单元格 (Target) 时,都会创建一个新工作表。一次单击或选择更改就会引发这种火灾太不可预测了。
    工作表名称将 = Target 单元格中的值
    该工作表将始终是选项卡选择中最右侧的工作表

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
    ws.Name = Target.Value
    
    End Sub
    

    您在完成项目时可能需要考虑的事项:

    1. 将目标范围限制为您希望它起作用的单元格。要实现这一点,请研究 Intersect 方法(或参见 #5)
    2. 如果双击的单元格值的值不符合工作表名称限制,则会出错。研究 Error Handling 以解决此问题(或确保您希望应用此功能的每个单元格的值都符合工作表名称规则)
    3. 如果你双击同一个单元格两次,你会得到一个错误(不能有多个同名的工作表)。 Error Handling 会在这里为您提供帮助
    4. 这不会在您的工作表上放置任何数据。本网站上有关复制/粘贴的问题数量非常多Offset 来自您的Target 单元格可能会有所帮助。此外,如果单元格有x,您可以遍历所选列 (Target.Column) 并移动到新工作表
    5. 如果您真的希望它仅在单击“绿色”单元格时触发,则可以对其进行修改以检查 Target 单元格格式

    【讨论】:

    • 谢谢,这就是我想要的,一个构建它的最佳方式的框架。
    【解决方案2】:

    所以首先,也许我没有回答正确的问题。

    只是为了澄清问题。你想在第一张表上有某种目录吗?

    为此,您需要为此特定工作表或特定范围具有事件处理程序。您可以根据所需的结果选择 Worksheet_SelectionChange 或 Worksheet_Change Event。

    至于创建新工作表并重命名它的例程。你可以使用这个参考

    Creating and Naming Worksheet in Excel VBA

    【讨论】:

    • 在图片中我提供了第一张纸上的内容以及新创建的表格应该是什么样子。
    • 为什么投反对票?我提供了你可以从哪里开始,这就是我得到的?非常好。
    • 我没有拒绝任何事情,你意识到其他人有这种能力......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多