【发布时间】:2018-06-21 15:48:59
【问题描述】:
当您单击一个绿色单元格时,一个新工作表的新工作表名称与绿色单元格的名称相匹配。绿色单元格是父母,“x”代表孩子。所以在新创建的工作表中会有两列。一列包含父母 ID,第二列将显示子 ID。(下图演示)。做这个的最好方式是什么?
【问题讨论】:
当您单击一个绿色单元格时,一个新工作表的新工作表名称与绿色单元格的名称相匹配。绿色单元格是父母,“x”代表孩子。所以在新创建的工作表中会有两列。一列包含父母 ID,第二列将显示子 ID。(下图演示)。做这个的最好方式是什么?
【问题讨论】:
由于您没有尝试过,我只会为您提供开始解决问题所需的基本信息。这需要粘贴在您的数据来源的工作表上(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
您在完成项目时可能需要考虑的事项:
Intersect 方法(或参见 #5)Error Handling 以解决此问题(或确保您希望应用此功能的每个单元格的值都符合工作表名称规则)Error Handling 会在这里为您提供帮助Offset 来自您的Target 单元格可能会有所帮助。此外,如果单元格有x,您可以遍历所选列 (Target.Column) 并移动到新工作表
Target 单元格格式【讨论】:
所以首先,也许我没有回答正确的问题。
只是为了澄清问题。你想在第一张表上有某种目录吗?
为此,您需要为此特定工作表或特定范围具有事件处理程序。您可以根据所需的结果选择 Worksheet_SelectionChange 或 Worksheet_Change Event。
至于创建新工作表并重命名它的例程。你可以使用这个参考
【讨论】: