【问题标题】:Prevent VBE from constantly changing modules in the background [duplicate]防止 VBE 在后台不断更改模块 [重复]
【发布时间】:2018-09-26 23:05:25
【问题描述】:

我们使用 SaveAsText 将 vba 代码从 access 数据库导出到文本文件,并将此文件放入 svn 数据库。见这里:Extract VBA-Code from Access via C#

问题是,VBE(= VBA 开发环境)似乎在后台改变了很多东西。例如:

xerrdesc = Err.Description

改为:

xerrdesc = Err.DESCRIPTION

在几十个模块中。

我们无法找出 VBE 改变这一点的原因。对我们来说,它看起来很随机。有时,这些内容会更改为示例中的大写字母。有时它会变成小写字母等等。

结果是存储库中出现了某种“噪音”。有很多我们不打算的变化。

有没有办法防止 VBE 在后台更改代码?

【问题讨论】:

    标签: vba ms-access svn


    【解决方案1】:

    如果你

    Dim DESCRIPTION As String
    

    anywhere 在您的 Access 项目中,VBE 将为您“帮助”将文本“描述”的所有引用更改为大写。要对此进行测试,请在您有 Err.DESCRIPTION 文本的模块中输入以下内容:

    Dim Description As String
    

    然后删除该行。它将修复所有地方的大写。

    此后,请确保您没有使用任何保留字或任何引用库的方法或属性的“时髦”大写。

    只是为了好玩:

    Dim value As Long
    ActiveWorksheet.Range("A1").value
    

    请注意,.Value 方法的情况已为您“修复”。 (是的,它是 Excel,但它在 Access 中的工作方式相同。)

    【讨论】:

    • 我很确定,当您“触摸”已写入的行时,vbe 也会开始“全局更改”。我们谈论的是超过 100 个项目,每个项目有 50-150 个模块。所以我可以看到如何确保每个人始终使用相同的大小写......
    • 我不同意你@Gene4tor,不幸的是,这就是你得到的。
    • 有时它不会更改一行,直到您自己更改该行上的某些内容并重新解析它。然后情况突然发生变化。我不会错过 VBA :D
    【解决方案2】:

    好的,这个问题似乎已经问过了:

    请看这里:Annoying vba naming behaviour 在这里:How does one restore default case to a variable in VBA (Excel 2010)?

    对不起...

    【讨论】:

    • 是的。区分不区分大小写的语言的区分大小写的乐趣。
    猜你喜欢
    • 2020-01-25
    • 2015-08-19
    • 2018-06-19
    • 2012-11-30
    • 2015-02-01
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多