HeJ小鼠,
我已经创建了一个小型VBA代码来动态重命名工作表。
只需手动输入单元格即可正常工作。
/**
* Uninstall Field UI.
*/
function MYMODULE_update_8001(&$sandbox) {
\Drupal::service('module_installer')->uninstall(['field_ui']);
}
但是一旦我将一个公式连接在C9单元格中的2个单元格值,它就不会自动更新它。 为了使它工作,我需要进入单元格并再次输入ENTER,它的工作原理。 每次更改连接的2个单元格的值时,我都必须进行相同的操作。
感谢您的帮助
答案 0 :(得分:2)
您需要捕获不同的事件:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
ActiveSheet.Name = ActiveSheet.Range("C9")
Application.EnableEvents = True
End Sub
注意:强>
如果工作表包含引用选项卡名称的公式,我们会在名称更改期间禁用事件。
答案 1 :(得分:0)
这应该有效:
替换
ActiveSheet.Name = ActiveSheet.Range("C9")
通过
ActiveSheet.Name = ActiveSheet.Range("C9").Value
答案 2 :(得分:0)
如果有人仍希望在工作表更改事件
上执行此操作,则这是另一个答案Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim formulacell As Range
Set formulacell = Range("C9")
Set formulacell = Application.Union(formulacell, formulacell.Precedents)
If Not Intersect(Target, formulacell) Is Nothing Then
ActiveSheet.Name = ActiveSheet.Range("C9").Value
End If
Application.EnableEvents = True
End Sub