Excel 尝试使用Application Volatile使单元格在每次更改工作簿时显示其名称,但不起作用
我正在尝试使用application.volatile使单元格能够在每次打开工作簿时显示工作簿的名称 函数getbookname()作为字符串 应用程序。挥发性 getbookname=ActiveWorkbook.Name 端函数Excel 尝试使用Application Volatile使单元格在每次更改工作簿时显示其名称,但不起作用,excel,vba,Excel,Vba,我正在尝试使用application.volatile使单元格能够在每次打开工作簿时显示工作簿的名称 函数getbookname()作为字符串 应用程序。挥发性 getbookname=ActiveWorkbook.Name 端函数 我将=getbookname()输入到单元格B7中,但结果是混合的。如果我关闭工作簿,更改工作簿的名称,然后再次打开,有时工作,有时不工作。有人能帮上忙吗?有很多网站解释了为什么要避免使用Volatile,除非真的需要 在代码中,您使用的是ActiveWorkbo
我将=getbookname()输入到单元格B7中,但结果是混合的。如果我关闭工作簿,更改工作簿的名称,然后再次打开,有时工作,有时不工作。有人能帮上忙吗?有很多网站解释了为什么要避免使用
Volatile
,除非真的需要
在代码中,您使用的是ActiveWorkbook
,但您对所需内容的描述意味着thishworkbook
更合适
您不需要VBA。发件人:
- 插入当前文件名、其完整路径和文件名
活动工作表:
=单元格(“文件名”)
- 仅插入当前文件名:
=MID(单元格(“文件名”)、搜索(“[”、单元格(“文件名”))+1, 搜索(“]”,单元格(“文件名”)-SEARCH(“[”,单元格(“文件名”)-1)
工作簿_Open
事件在某处设置一个引用单元格。如果您使用“命名范围”,这将更容易。对于参数,让我们将此工作簿范围的命名范围称为“bookname”。然后,在需要它的单元格中,您只需键入=bookname
Private Sub WorkBook_Open()
ThisWorkbook.Sheets("MyReferenceSheet").Range("bookname").Value = ThisWorkbook.Name
End Sub
对于每个选项,“Volatile”这可能导致的所有问题都是不必要的。计算是否设置为自动?如果设置为手动,即使使用volatile也不会更新。还有哪个版本的excel?64或32位?它设置为自动,并且是32位。即使计算设置为自动,也不会更新。谢谢,这非常有用。使用excel版本虽然在名称更改后打开工作簿后,我需要在文件名更新之前执行某种操作,但sion更稳定。我将尝试找到另一种解决方法。确定-听起来像是一个新问题,而不是试图重复这个问题(尽管您可以链接到它以了解更多上下文).如果答案有帮助,请随意接受。