【问题标题】:VBA shorthand for x=x+1?x=x+1 的 VBA 简写?
【发布时间】:2013-12-03 05:57:08
【问题描述】:
Sub btn1_Click()
Static value As Integer
value = value + 1
MsgBox value
End Sub

我发誓,当我在大学学习 VB.net 课程时,有一种更短的方法可以告诉变量将 '' 添加到自身。也许x = + 1。我现在使用的是 Access 而不是 Visual Studio。当我在 VBE 中尝试时,它会删除 +。我什至删除了Option Explicit,没有任何变化

假设答案是否定的,没有办法简写它,它只是 VBA 的一个特点

【问题讨论】:

    标签: vba ms-access


    【解决方案1】:

    遗憾的是,VBA 中没有 operation-assignment 运算符。

    (加法赋值+=在VB.Net中可用)

    无意义的解决方法;

    Sub Inc(ByRef i As Integer)
       i = i + 1  
    End Sub
    ...
    Static value As Integer
    inc value
    inc value
    

    【讨论】:

    • +1 来自 cpp 背景 我记得在我拿起 VBA 的第一天问自己这个问题并做了完全相同的无意义的解决方法哈哈
    • 应该注意inc 应该是Sub,因为在这种情况下Function 的返回值被丢弃并且不需要。将其声明为 Sub 反而可以明确这一意图,并且不会让它看起来像一个错误。
    【解决方案2】:

    如果你想直接在函数中调用递增的数字,这个解决方案效果更好:

    Function inc(ByRef data As Integer)
        data = data + 1
        inc = data
    End Function
    

    例如:

    Wb.Worksheets(mySheet).Cells(myRow, inc(myCol))
    

    如果函数inc()没有返回值,上面一行会报错。

    【讨论】:

    • 你的实现是一个前缀增量++myCol。它返回增加的值。如果你想要后缀(myCol++),那么函数应该是这样的:Function inc(ByRef data As Integer) inc = data data = data + 1 End Function
    猜你喜欢
    • 2019-03-21
    • 2012-06-03
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多