我正在为我公司的员工制作仪表板/统计数据,并且我的一个代码遇到了一些打嗝。这里有一些启动背景
每位员工都有2张不同的统计数据表。
第一张纸始终可见,并且有一个宏将取消隐藏并激活第二张纸(因此工作簿不会太难以管理。)当您单击第二张纸时,我有一个宏这将隐藏它(如果它具有与第二张相关的属性,则使用workbook_Sheetdeactivate
关闭工作表)
第一张工作表的标签名称已添加到单元格(在我的情况下为range("A62"))
),其公式为"=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)"
。
然后我在第二张纸上使该单元格等于range("A1")
。我想要的是第二张的名称等于range("A1")
& "成就",以便第一张可以在我的宏中引用第二张。 (例如:如果sheet1是" Bobby&#34 ;, sheet2是" Bobby成就")
我自己编写宏时没有遇到任何问题,但我不知道哪个子版本最适合使用,以便在正确的时间激活宏。有没有办法在工作簿中更改工作表时运行宏?
以下是代码:
dim ws as worksheet
'Sorting through each sheet to find "Achievement Sheets"
For Each ws in Workbook
If ws.range("W1").Value = "Achievement Lists" Then
ws.name = ws.Range("A1") & " Achievements"
End if
Next ws
答案 0 :(得分:0)
可能有点粗糙,但你可以简单地使用'计算'第二个工作表对象上的事件,用于更新自己的名称。
Private Sub Worksheet_Calculate()
If Range("A1") & " Achievements" <> Me.Name Then
Me.Name = Range("A1") & " Achievements"
End If
End Sub
或使用工作簿对象中的&#39; SheetCalculate事件:
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
On Error Resume Next
If Sh.Range("W1").Value = "Achievement Lists" Then
If Sh.Range("A1").Value & " Achievements" <> Sh.Name Then
Sh.Name = Sh.Range("A1") & " Achievements"
End If
End If
End Sub