vba函数(按钮)将单元格的值更改几毫秒然后还原

时间:2015-03-06 10:34:28

标签: vba function excel-vba time revert

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
sub changeto1quickly()
range("C1").Value = 1
sleep(1) 
("C1").Value= 0 
End sub

以上工作将C1更改为1然后暂停然后将其恢复为0所以现在我需要在偏移包含引用的列中聚合它

我需要能够将包含特定单词的列左侧的单元格值更改为。例如在COLUMNS CD中,以便B列中具有Dim的每个cel都需要运行上面的sub来快速将零更改为1。

    B    D    E
  1 dim   0
    dim   0
    car   0
    car   0
    dim   0
    car   0

我需要能够制作一个VBA公式,如果你把它拖下来,如果公式可以做的话,几乎可以做任何excel。我在这里找到了这个:http://www.quepublishing.com/articles/article.aspx?p=2021718&seqNum=8 假设您在A列中有一个产品列表,其中B列旁边有总计。如果您想要找到任何等于零的总数并将LOW置于其旁边的单元格中,请执行此操作:< / p>

Set Rng = Range("B1:B16").Find(What:="0", LookAt:=xlWhole,        LookIn:=xlValues)
Rng.Offset(, 1).Value = "LOW"

虽然我需要它稍微不同,不是指A中的A列或B列,而是指不相邻的列。即检查是否D:D具有Dim然后在C列中的任何单元格中放置1:C偏移到库存D:D 当然,这可以根据我的需要进行调整。也许..

作为子

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
sub pump_onall()

 Set Rng = Range("B1:B16").Find(What:="Dim", LookAt:=xlWhole,          LookIn:=xlValues)
Rng.Offset(3, 0).Value = 1
sleep(1)
Rng.Offset(3,0).Value = 0
End sub

我在设置的Rng行

上收到错误
Sub pump_onall()

Set Rng = Sheets("Account Details    --->").Range("DH1:DH50").Value.Find(What:="DQ3", LookAt:=xlWhole,   LookIn:=xlValues)
Rng.Offset(0, -7).Value = 1
Sleep (1)
Rng.Offset(0, -7).Value = 0
End Sub

当然可以这样做

Sub pump_onall()

Sheets("Account Details --->").Range("DH1:DH50").Value.Find(What:="DQ3",  LookAt:=xlWhole, LookIn:=xlValues)
Sheets("Account Details --->").Range("DH1:DH50").Offset(0, -7).Value = 1
Sleep (1)
Sheets("Account Details --->").Range("DH1:DH50").Offset(0, -7).Value = 0
End Sub

我得到的错误是错误9下标超出范围

1 个答案:

答案 0 :(得分:0)

Sleep功能允许您执行此操作:

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub SleepTest()
    Debug.Print Timer ' do something
    Sleep (100)       ' wait for 10th second
    Debug.Print Timer ' do something else
End Sub