excel - 代号为常数?

标签 excel vba constants excel-2016

我在 Excel 2016 VBA module 中有多个函数/程序引用名为 DataSheet 的 CodeName .

Public Sub LoadRecords()
    '***Caution: The 'DataSheet' CodeName is hardcoded (in multiple places).***
    With DataSheet.ListObjects(tblName)
        'Some code 
        Next
    End With
End Sub

Function ConcatVars(RowNum As Integer) As String
    '***Caution: The 'DataSheet' CodeName is hardcoded (in multiple places).***
    For Each Column In DataSheet.ListObjects(tblName).ListColumns
        'Some code
    Next
End Function
问题:
有没有办法将 CodeName 声明为常量?
  • 原因:如果要更改 CodeName,则 VBA 代码中的引用可以在一个非常显眼的地方更新。

  • 我试过的:
    如果我将 codeName 放在一个常量中:
    Public Const codeName = "DataSheet"
    
    并尝试引用常量:
    With codeName.ListObjects(tblName)
    
    我收到此错误:

    Compile Error: Invalid qualifier

    最佳答案

    只需定义一个函数(并避免使用相同的函数或变量名重载现有的 CodeName 属性):

    Function myCodeName() As Worksheet
    Set myCodeName = DataSheet          ' << change to your project's Code(Name) 
    'Debug.Print myCodeName.CodeName
    End Function
    
    

    关于excel - 代号为常数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62583341/

    相关文章:

    excel vba sql语句返回单个字符串

    C# Epplus - 如何对除第一行以外的所有数据进行排序

    java - 使用 Java 从现有 Excel 文件读取单元格并将其写入新的 Excel 文件

    Excel vba 运行时错误 1004 复制图像

    sql - 使用 vba/sql 比较 Access 中的所有字段

    ios - 如何在 Objective-C 的框架中设置常量文件

    excel - 将一个数字提高到一个数字范围的幂

    vba - 为什么 Excel VBA 中的 .Find() 方法似乎只检查前 15 个字符?

    抛弃指向 const 的指针数组中的常量性,以及有关 C 的其他问题

    c# - 用 nameof() 声明常量,常量作为值