有没有办法在右侧引用表达式的左侧?即在=之后

时间:2019-10-24 09:30:34

标签: excel vba

我对编码还很陌生,而且我从未接受过任何正规的培训,因此这似乎是一个愚蠢的问题,或者我可能使用了错误的术语,所以请放轻松...!但是我只是想知道:

如果执行操作时是否有快捷方式引用左侧的右侧,而无需再次输入全名?

例如而不是像这样写

sheet1.range("Unnecessarily Long Range Name").value = sheet1.range("Unnecessarily Long Range Name").value + 1

有内置的东西吗

sheet1.range("Unnecessarily Long Range Name").value = LHS + 1

还是我可以创建某种自定义函数来达到这种效果?

我知道我可以使用

dim x as range
set x = sheet1.range("Unnecessarily Long Range Name")
x.value = x.value + 1

但是这是三行(每次),我宁愿一口气做完,我喜欢快捷方式...! :)

3 个答案:

答案 0 :(得分:2)

With … End With语法应做到:

With sheet1.range("Unnecessarily Long Range Name")
    .value = .Value + 1
End With

答案 1 :(得分:0)

通过简写代码增加范围值

您不会使用其他语言的i ++之类的结构,但是使用子调用可以执行示例快捷方式 incr 来增加范围值:

    incr rng

    incr Sheet1.range("Unnecessarily Long Range Name")

如果要在递增后返回结果,则可能要传递可选变量by Reference

    Dim x#
    incr Sheet1.range("Unnecessarily Long Range Name"), x

默认情况下,您可以将+ increment的{​​{1}}值更改为任何其他显式参数值(例如+ 1):

100

非连续范围区域

即使范围参考中包含不连续的区域(例如, Dim x# incr Sheet1.range("Unnecessarily Long Range Name"), x, 100 注意:在这种情况下,可选变量将仅返回最上面的单元格值-但您可以轻松地将其适应您的需求。

Sheet1.Range("A3:A6,B1:F1")

答案 2 :(得分:-1)

为简化第二种方法,您始终可以在同一行中用“:”定义和设置变量的值。

dim x as range: set x = sheet1.range("Unnecessarily Long Range Name")