将范围值存储在VBA对象中
我写了一个程序,它将存在于指定范围( A1:B2
)中的值乘以作为parameter passing的值(写入单元格D1
的值)。
现在,如何才能再次运行一个不同的参数,将运行在原始值的macros? 我敢肯定,我需要一些全局variables,这将告诉我的过程,macros已经运行至less一次(我发现如何做到这一点),但我不知道如何/在哪里存储的原始值。
例如,我有
Range("A1").Value = 1 Range("A2").Value = 1 Range("B1").Value = 1 Range("B2").Value = 1 Range("D1").Value = 2
单击macrosbutton,获取Range("A1:B2")
范围内的值,如下所示
Range("A1").Value = 2 Range("A2").Value = 2 Range("B1").Value = 2 Range("B2").Value = 2
现在,手动编辑Range("D1").Value
从2
到3
,再次单击macrosbutton,我希望我的过程返回以下值
Range("A1").Value = 3 Range("A2").Value = 3 Range("B1").Value = 3 Range("B2").Value = 3
简约程序可以是这样的结构
dim rng as Range dim MyRange as Range set MyRange = Range("A1:B2") For each rng in MyRange rng.value = rng.value*Range("D1").Value next rng
我希望这是一个很好的例子。 谢谢
弗朗切斯科
如果我理解的很好,你想要的是一种方法来跟踪你每次调用你的子button,并使用这个数据。
一种方法是在模块中创build一个公共variables(我通常在我的项目中创build一个variables模块),并使用button更新您调用的子数据。
'Your public variable inside a module (VariablesModule) Public param() As Variant 'Your general code Call procedure(VariablesModule.param) 'Inside your sub Sub procedure(byVal paramVal as Variant) '(your code) ReDim param(0 To n) As Variant Set param(1) = ABCDEFG End sub
第二种方法是简单地将这些数据存储在一个范围内,并在你的子文件中使用/更新。