class - 将属性添加到现有 VBA 类

标签 class excel vba

我想做一些事情,比如添加一个 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/

相关文章:

vba - 将电子邮件另存为文本文件的宏,以在规则中使用

java - Java 访问对象值

python - 在 python 中的 __init__ 中返回 None 的错误形式

ms-access - 当用户双击文档时触发按钮私有(private)子

r - 将列中的每五行相加然后除以十?

excel - 如何测试单元格是否为空白或实际上是对 Excel 或 Google Sheets 中空白单元格的引用?

vba - 编译错误无效下一个控制变量引用VBA

python - 如何在 Python 中扫描实现我的库中某个类的类?

java - JSP 标记库使用相同的对象

mysql - 使用 MySQL for Excel - 数据库中的一个特定表将无法导入,所有其他表都工作正常