从按钮单元创建新表,将数据拉入新表

时间:2018-06-20 20:02:57

标签: excel vba excel-vba

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

enter image description here

enter image description here

2 个答案:

答案 0 :(得分: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在这里可能会有所帮助。另外,如果单元格中有Target.Column
  5. ,您可以循环浏览选定的列(x)并移至新的工作表
  6. 如果您确实希望仅在单击“绿色”单元格时才触发此格式,则可以对其进行修改以检查Target单元格格式

答案 1 :(得分:-1)

首先,也许我没有正确地回答问题。

只是为了澄清问题。您要在第一张纸上放置某种目录吗?

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

关于创建新工作表并将其重命名的例程。您可以使用此参考

https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/drawImage