我想做一些事情,比如添加一个 nice-to-Excel-functions Name
WorkBook
的属性(property)类(class)。有没有好的方法来做到这一点?
更详细的问题:在 VBA 中,您可以将公式分配给 Excel 工作表中的范围。我想这样做,并且我希望我的公式引用第二个工作簿,它是一个名为 wb
的对象在我的代码中。然后我使用 wb.Name
在将公式分配给范围时。
问题出现在 wb.Name
里面有一个单引号。然后你会得到这样的结果:
=MONTH('[Ryan's WB]Sheet1'A1)
在电子表格中,由于工作簿名称中的单引号与第一个单引号匹配而失败。
我想要的是
FunName
WorkBook
的属性替换 Name
中所有单引号的类带有两个单引号的属性并返回它。那么上面的公式会正确地看起来像=MONTH('[Ryan''s WB]Sheet1'A1)
最佳答案
您无需创建单独的类来扩展工作簿类。您可以将属性添加到现有的 ThisWorkbook 类模块,如下所示:
Public Property Get FunName() As String
FunName = Replace(Me.Name, "'", "''")
End Property
然后您调用
ThisWorkbook.FunName
得到你的清理名字。但是,此代码必须存在于手头的工作簿中。如果您希望它适用于任何工作簿,那么您的功能就是要走的路。
关于class - 将属性添加到现有 VBA 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/284985/